Node-RedとLINE BOTを使って色々やってみよう④【住所検索BOT】

こんにちは。

前回Webhookを使って、BOTに対して送ったメッセージ内容を取得→オウム返しというのをやりました。

今回はそれを応用して、住所検索APIと組み合わせて住所検索BOTみたいなものを作ってみましょう。

完成イメージとしてはこんな感じです

「1000001」とBOT相手にメッセージを送ると、それに該当する住所がBOTから送られてくる。

画像1

それではやっていきましょう。


LINEBOTと住所検索APIを組み合わせてみる

今回住所検索に使用するAPIはこちらです。もちろん無料で使えます。

ここにAPIを使った住所の検索方法は記載してあるので、それに従ってNode-Redを設定していきます。

今回は、前回使ったオウム返しのフローに、住所を検索するフローを追加する事で出来ます。各ノードは画像のように繋ぎます。

画像2

フローの大まかな内容については、以下の通りです。

1.Webhookで自分が送った郵便番号を取得する

2.送られてきた郵便番号を元に住所検索APIで検索

3.検索結果を自分宛にメッセージ送信


2つの[function]ノードの中身はこのようにしました。

・住所検索

msg.code=msg.payload.events[0].message.text //BOTに対して送った郵便番号をmsg.codeとして定義

msg.method="GET"
msg.url=`http://zipcloud.ibsnet.co.jp/api/search?zipcode=${msg.code}` //リクエストURLにmsg.codeを入れる

return msg;

・結果をメッセージ送信

//検索結果が表示されている部分をそれぞれ変数定義する
msg.add1=msg.payload.results[0].address1
msg.add2=msg.payload.results[0].address2
msg.add3=msg.payload.results[0].address3
msg.kana1=msg.payload.results[0].kana1
msg.kana2=msg.payload.results[0].kana2
msg.kana3=msg.payload.results[0].kana3

msg.method=`POST`
msg.url="https://api.line.me/v2/bot/message/push"

msg.headers={
   "Content-Type":"application/json",
   "Authorization":"Bearer {{チャネルアクセストークン}}"
}
msg.payload={
	"to":`{{自分のユーザID}}`, 
	"messages":[//定義した変数をメッセージ内容にする
       {
         "type": "text",
         "text": `郵便番号:${msg.code}\n住所:${msg.add1}${msg.add2}${msg.add3}\nカナ:${msg.kana1}${msg.kana2}${msg.kana3}`
       }
   ]
}

return msg;

この通りにノードの中身を設定すれば、きちんと動くはずです。


実際に動かしてみよう

それでは実際に動かしてみましょう!!

BOTに対して「1000002」と送ると…

画像3

こんな感じで該当する住所が返ってきました!!

送る郵便番号を「1000003」にすると、

画像4

このように「1000003」に該当する住所が返ってきます。

他にも色々な郵便番号で試してみてください。ちゃんと検索結果が返ってくるはずです。


まとめ

今回は、これまで行ってきた機能を色々応用して、住所検索BOTを作りました。他にもデータ検索が可能なAPIは色々用意されているので、今回の記事を参考に他のものを作ってみても面白そうですね。

4回に渡ってNode-RedとLINE BOTについて書いてきましたが、無料でこんなにも色々なサービスが提供されているなんて凄いですね。それが1番の驚きでした。

今回は主にAPI関連についてでしたが、Node-Redは他にもたくさん便利な機能がありそうなので、機会があれば他にも色々触ってみようと思います。

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


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