AI LINE チャットボット プログラミング

LINE Message API - Push Message -

PushMessageと呼ばれる、

Botアカウントから、ユーザーにメッセージを送る機能が使いたい

ただ、使えるかどうかも分からなかったので、調べた結果をまとめます。

スポンサーリンク

結論

先に結論を言えば使えます。

色々調べた後、気づきましたが、追加したチャネルにもちゃんと記載がありました。

「Message api プラン」でググって最初に出てくるリンクの情報に惑わされました。

Message APIについて

LINEのMessageAPIには、2つの機能があります。

  • Reply Message
  • Push Message

ここに、MessageAPIの特徴があります

https://developers.line.biz/ja/services/messaging-api/

仕組みはここ

https://developers.line.biz/ja/docs/messaging-api/overview/

プランについて

ここに記載のプランによるとDeveloperTrialプランならPush Message(API)が使えるようです。

*2019年7月11日時点のリンクの情報

先ほどのリンクでLINE@というプランもあり、よくわからない

DeveloperTrialプランへの変更

プラン変更すれば、とりあえず使える気がするので、

LINE Official Account Managerで変更を試みるが、プラン体系が違う。。。

何か見落としている気がしたので、もう少し調べました。

DeveloperPlan移行の記事

まず、DeveloperPlan移行という記事を発見。

この記事によると、以降して、フリープランになったとありました。

さらに、プッシュメッセージを送信できるようになります。

と記載もあります!素晴らしい。

LINE@サービス統合

先ほどの記事のプレスリリースを見ると、PDFが2つあり、1つめにプランも載っています。

Pythonで評価

参照

PUSH Messageだけでなく、開発時には下記のMessage APIリファレンスを参照すると
良いと思います。

APIリファレンスには色々なコードのサンプルが載っています。

これらを参考に使いたい言語で開発をします

channel access token

LINE Developersのプロバイダーリストで作成したチャネルのところから取得します。

基本情報のChannel ID,Channle Secretではありません。

user id

user idはWebhookURLで指定しているのウェブアプリ側で確認できます。

他にも方法はあるかもしれません。

下記はNodeRedで確認していますが、LINE Developersで用意したチャンネル(Bot)に
取得したいユーザーのLINEアプリからメッセージを送ると、下記のようにUSER IDがひっついてきます。

python コード

Text Message

channel access tokenとuser idを置き換えて下記実行するだけです。

from linebot import LineBotApi
from linebot.models import TextSendMessage

line_bot_api = LineBotApi("channel access token")
user_id = "user id"
messages = TextSendMessage(text=f"こんにちは")
line_bot_api.push_message(user_id, messages=messages)

Flex Message

Flex Messageの場合が分かりにくかったので、載せておきます。

APIリファレンス見ても、JSON載っているだけだし、line-bot-sdkのGithub見ても分かりにくかったです。

FlexSendMessageで与えている、alt_textはメール受信時のテキストになるようです。

from linebot import LineBotApi
from linebot.models import FlexSendMessage
import json
#JSONデータ読み込み
f = open('hoge.json', 'r')
messages = json.load(f)
messages = FlexSendMessage(alt_text="hoge", contents=messages)
#メッセージ送信
line_bot_api = LineBotApi("channel access token")
user_id = "user id"
line_bot_api.push_message(user_id, messages=messages)

hoge.jsonファイルの中身は、Flex Message Simulatorとかで作るものでそのままで良いです。

例えば、下記のようなJSONを保存して読み込めば、OKです。

{
  "type": "bubble",
  "hero": {
    "type": "image",
    "url": "https://scdn.line-apps.com/n/channel_devcenter/img/fx/01_1_cafe.png",
    "size": "full",
    "aspectRatio": "20:13",
    "aspectMode": "cover"
  }
}

-AI, LINE, チャットボット, プログラミング
-, ,