前回の記事ではAWS Cognitoを使ってLineログインの実装を行いました。
しかしせっかくLineアカウントで認証したのであれば、そのままメッセージを送って販促等に役立てたいですよね?
今回はLineのメッセージAPIを使って、Line認証したユーザーへメッセージを送れるようにしてみましょう!
仕様
- Lineログインで認証しているLineアカウントにメッセージを送る
- Line公式アカウント経友でメッセージを送る。そのためLine公式アカウントに登録してもらう必要がある
- メッセージ送信はPythonで行う
Lineログインの実装
こちらは前回の記事を参照してください。
この続きという前提で進めます。https://note.com/embed/notes/n126210ec415c
Line Messaging APIを設定する
Line Developersより、Messaging APIを設定します。
なお、必ずCognitoを作成したプロバイダを選んで、『新規チャンネル作成』を押してください。
下記のような選択肢が出てくるので、Messaging APIを選択します。
下記のように入力を行ってください。
作成を押すと、下記のようなメッセージが出てきますので、そのままOKを押してください。
更に規約が2つ程出てくるので『同意する』を押すと、MessagingAPIが作成できます。
Pythonでのサンプルを実行
メッセージを送る部分については、『line-bot-sdk』が必要になりますので、インストールしてください。
pip install line-bot-sdk
以下がサンプルプログラムです。
import os
import linebot.v3.messaging as bot
# LINE_BOT_ACCESS_TOKENは、Messaging API設定のチャネルアクセストークン
LINE_BOT_ACCESS_TOKEN = os.environ.get('LINE_BOT_ACCESS_TOKEN')
configuration = bot.Configuration(
access_token=LINE_BOT_ACCESS_TOKEN
)
def send_message_to_line(messages, line_user_id):
message_dict = {
"to": line_user_id,
"messages": messages
}
with bot.ApiClient(configuration) as api:
api_instance = bot.MessagingApi(api)
push_message_request = bot.PushMessageRequest.from_dict(
message_dict)
try:
res = api_instance.push_message(push_message_request)
print("Successful sending!!")
print(res)
except Exception as e:
print(f"Exception : {e}")
messages = {
"type": "text",
"text": "登録完了しました。"
}
send_message_to_line([messages], line_user_id)
‘LINE_BOT_ACCESS_TOKEN’は、先程作った画面に『Messaging API設定』というタブがあるので、そこから発行して置き換えてください。
また、リクエストするユーザーIDは”U”から始まるuserIdです、Cogintoのidentitiesから確認することができます。
これでLine認証したユーザーへ、メッセージを送ることができます!
その他参考資料など
TodoONada株式会社では、この記事で紹介した以外にも、Supabase・Next.jsを使ったアプリの作成方法等についてご紹介しています。
下記記事にて一覧を見ることができますので、ぜひこちらもご覧ください!https://note.com/embed/notes/n522396165049
求職者向けマッチングサービス開発|TodoONada株式会社|note Next.js とSupabaseでより実践的な求人マッチングアプリを作ります。 note.com
お問合せ&各種リンク
- お問合せ:GoogleForm
- ホームページ:https://libproc.com
- 運営会社:TodoONada株式会社
- Twitter:https://twitter.com/Todoonada_corp
- Instagram:https://www.instagram.com/todoonada_corp/
- Youtube:https://www.youtube.com/@todoonada_corp/
- Tiktok:https://www.tiktok.com/@todoonada_corp
presented by