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]

画像1

[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]ノードを押します。すると…

画像2

ちゃんと「あいうえお」とメッセージが送られてきました!!

メッセージ内容を「かきくけこ」に変更して送ると、このように変更が反映されてメッセージが送られて来ますね。

画像3


色んな形式のメッセージを送ってみる

先ほどはテキスト形式のメッセージを送信しましたが、LINE BOTではそれ以外にも色々な形式のメッセージを送ることが出来ます。例えば、スタンプや位置情報などです。

テキスト以外のメッセージの送り方はMessaging APIに載っています。

[APIリファレンス]>>[Messaging API]>>[メッセージオブジェクト]

例えばスタンプをメッセージで送る場合、以下のようにメッセージ部分を設定します。

"messages":[ 
		{
          "type": "sticker",
          "packageId": "1",
          "stickerId": "1"
       }
	]

画像4

このようにスタンプが送られてきます。

位置情報をメッセージで送る場合はこんな感じ。

"messages":[ 
		{
              "type": "location",
              "title": "my location",
              "address": "〒150-0002 東京都渋谷区渋谷2丁目21−1",
              "latitude": 35.65910807942215,
              "longitude": 139.70372892916203
       }
	]

画像5

位置情報が送られてきます。

他にも画像や動画など、形式の種類は色々あるので、是非試してみてください!!


まとめ

今回はNode-RedとMessaging APIを組み合わせて、BOTからのメッセージ送信をしてみました。

今回はNode-Red上の[inject]ノードを押すことによるBOTからのメッセージ送信だったので、次回はWebhookを利用して、自分がBOTに対してメッセージを送信するのをきっかけにBOTを動かしてみようと思います。

読んでいただきありがとうございました。



この記事が気に入ったらサポートをしてみませんか?