Node-RedとLINE BOTを使って色々やってみよう②【メッセージ送信】
こんにちは。
前回はenebularでNode-Redの設定、LINE DevelopersでBOTアカウントの作成を行いました。
今回はNode-Redと前回作ったBOTを使って、自分あてにメッセージを送信してみます。
Messaging APIを使う
APIを使ったメッセージ送信のやり方については、LINE Developersのドキュメントの、Messaging APIに記載されています。
Messaging APIの画面を開いたら、左側のメニューから[APIリファレンス]>>[Messaging API]>>[メッセージ]>>[プッシュメッセージを送る]を開きます。
ここにプッシュメッセージを送るためのリクエストURLやヘッダー、ボディの内容が記載されています。
Node-Redで設定
送り方についてはMessaging APIで分かったので、実際にNode-Redを使ってメッセージを送信していきます。
使用するノードは次の4つです。画像のように各ノードを繋ぎます。
[inject]、[function]、[http request]、[debug]
[function]ノードの中身は以下ようにしました。
msg.url=`https://api.line.me/v2/bot/message/push`;
msg.method=`POST`;
msg.headers={
"Authorization":"Bearer {{チャネルアクセストークン}}",
"Content-Type":"application/json"
};
msg.payload={
"to":`{{自分のユーザID}}`, //誰に送るか指定
"messages":[ //メッセージ内容を指定
{
"type":"text",
"text":"{{送りたいメッセージ}}"
}
]
};
return msg;
チャネルアクセストークンと自分のユーザIDについては、LINE DevelopersのBOTの設定画面から確認できます。
[チャネル基本設定]タブに自分のユーザID、[Messaging API設定]タブにチャネルアクセストークンが記載されています。※トークンが発行されていない場合は[発行]を押す
[http request]ノードのメソッドを、[-msg.methodに定義]に設定します。それ以外のノードは特に変更しないで大丈夫です。
これでNode-Red側の設定は完了です。
実際に送ってみよう!!
[function]ノードのメッセージ内容部分を「あいうえお」にしてデプロイ。
"messages":[
{
"type":"text",
"text":"あいうえお"
}
]
そして[inject]ノードを押します。すると…
ちゃんと「あいうえお」とメッセージが送られてきました!!
メッセージ内容を「かきくけこ」に変更して送ると、このように変更が反映されてメッセージが送られて来ますね。
色んな形式のメッセージを送ってみる
先ほどはテキスト形式のメッセージを送信しましたが、LINE BOTではそれ以外にも色々な形式のメッセージを送ることが出来ます。例えば、スタンプや位置情報などです。
テキスト以外のメッセージの送り方はMessaging APIに載っています。
[APIリファレンス]>>[Messaging API]>>[メッセージオブジェクト]
例えばスタンプをメッセージで送る場合、以下のようにメッセージ部分を設定します。
"messages":[
{
"type": "sticker",
"packageId": "1",
"stickerId": "1"
}
]
このようにスタンプが送られてきます。
位置情報をメッセージで送る場合はこんな感じ。
"messages":[
{
"type": "location",
"title": "my location",
"address": "〒150-0002 東京都渋谷区渋谷2丁目21−1",
"latitude": 35.65910807942215,
"longitude": 139.70372892916203
}
]
位置情報が送られてきます。
他にも画像や動画など、形式の種類は色々あるので、是非試してみてください!!
まとめ
今回はNode-RedとMessaging APIを組み合わせて、BOTからのメッセージ送信をしてみました。
今回はNode-Red上の[inject]ノードを押すことによるBOTからのメッセージ送信だったので、次回はWebhookを利用して、自分がBOTに対してメッセージを送信するのをきっかけにBOTを動かしてみようと思います。
読んでいただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?