LINEのチャットボットを作ってみた 〜導入〜
LINEのボットが無料で作れるとのことで、興味本位でチャットボットを作ってみた。
使用したのは、
・LINE ビジネスアカウント
・LINE Messaging API
・Google Apps Script (通称GAS)
それぞれ簡単にコメント
・LINE ビジネスアカウント
LINE Messaging API を使うために登録が必要。
"一般アカウント" であれば個人でも登録可能で、「フリープラン」なら無料
・LINE Messaging API
LINEと自分のサービス(GASのプログラム)間でメッセージのやり取りをする
のに使用。
https://developers.line.me/ja/services/messaging-api
・Google Apps Script
Google のアカウントを持っていれば使用可能なサービス。
スクリプトの言語はJavaScript をベースにしている。
GAS同様、Googleのアカウントを持っていれば使用可能なサービス。
GASに比べれば、こちらのほうが使ったことがある方も多いだろう。
Excel みたいなやつ、といえば大体通じる。
で、どんなのを作ったのかというと。
「京都の神社やお寺の住所を答えてくれるチャットボット」
百聞は一見にしかず。まずは下の写真をご覧あれ。
「伏見稲荷」とメッセージを送ると、Bot が以下の情報を返す。
- 名前
- 住所
- google map で住所検索するURL
●仕組み
1. LINEでBotに対してメッセージを送る
2. LINE Messaging API を利用し、GASがメッセージを受信
3. GAS側で、受け取ったメッセージを元にGoogle スプレッドシート内を検索
(※Google スプレッドシートはデータベースの代わりとして使用)
4. 該当の「名前」「住所」「Google MapのURL+住所」を取得
5. 結果を返す
●もう少し詳しく
"Google スプレッドシートはデータベースの代わりとして使用" と記載したが、
実際に見てもらうとこんな感じ。
Google Apps Script の実際のコードを載せると長くなるので別記事を参照
GAS側では、受け取ったメッセージで スプレッドシートの"name" 列 をLIKE 検索(文字列が含まれていればヒット扱い)して、ヒットした行の "name" と "address" を取得する、といったつくりになっている。
なお、複数行ヒットしたら複数行返すようにはしたが、例えば 神社の "神" なんて送られてきた日には100件超ヒットしてしまい、レスポンスがエラいことになるので
少し制御を入れてある。
以下のQRコード、もしくはボタンから友達追加すると、実際に触ってもらえるので、興味があればどうぞ。
無料プランなので 友達は 50人まで という制限がある。万が一追加できなかったら申し訳ない。。。
こいつが追加されるはず。