Lineログイン+メッセージAPIでLine認証したユーザーにメッセージを送る

前回の記事ではAWS Cognitoを使ってLineログインの実装を行いました。
しかしせっかくLineアカウントで認証したのであれば、そのままメッセージを送って販促等に役立てたいですよね?

今回はLineのメッセージAPIを使って、Line認証したユーザーへメッセージを送れるようにしてみましょう!

目次

仕様

  • Lineログインで認証しているLineアカウントにメッセージを送る
  • Line公式アカウント経友でメッセージを送る。そのためLine公式アカウントに登録してもらう必要がある
  • メッセージ送信はPythonで行う

Lineログインの実装

こちらは前回の記事を参照してください。
この続きという前提で進めます。https://libproc.com/line-cognito/

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認証したユーザーへ、メッセージを送ることができます!

  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次