鯛’s PG blog

プログラミングに関するあれこれを書きます

LINEのチャットボットを作ってみた 〜導入〜

LINEのボットが無料で作れるとのことで、興味本位でチャットボットを作ってみた。

使用したのは、

・LINE ビジネスアカウント

・LINE Messaging API

Google Apps Script (通称GAS)

Google スプレッドシート

 

それぞれ簡単にコメント

 

・LINE ビジネスアカウント 

 LINE Messaging API を使うために登録が必要。

 "一般アカウント" であれば個人でも登録可能で、「フリープラン」なら無料

at.line.me

 

・LINE Messaging API

 LINEと自分のサービス(GASのプログラム)間でメッセージのやり取りをする

 のに使用。

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

 

Google Apps Script

 Google のアカウントを持っていれば使用可能なサービス。

 スクリプトの言語はJavaScript をベースにしている。

qiita.com

 

Google スプレッドシート

 GAS同様、Googleのアカウントを持っていれば使用可能なサービス。

 GASに比べれば、こちらのほうが使ったことがある方も多いだろう。

 Excel みたいなやつ、といえば大体通じる。

 

で、どんなのを作ったのかというと。

 

「京都の神社やお寺の住所を答えてくれるチャットボット」

 

百聞は一見にしかず。まずは下の写真をご覧あれ。

f:id:taiyaki_dos:20171130155243p:plain

 

伏見稲荷」とメッセージを送ると、Bot が以下の情報を返す。

  • 名前
  • 住所
  • google map で住所検索するURL

 

●仕組み 

1. LINEでBotに対してメッセージを送る

2. LINE Messaging API を利用し、GASがメッセージを受信

3. GAS側で、受け取ったメッセージを元にGoogle スプレッドシート内を検索

(※Google スプレッドシートはデータベースの代わりとして使用)

4. 該当の「名前」「住所」「Google MapのURL+住所」を取得

5. 結果を返す 

 

●もう少し詳しく  

"Google スプレッドシートはデータベースの代わりとして使用" と記載したが、

実際に見てもらうとこんな感じ。

f:id:taiyaki_dos:20171130161507p:plain

 

Google Apps Script の実際のコードを載せると長くなるので別記事を参照

taiyaki-dos.hatenablog.com

 

GAS側では、受け取ったメッセージで スプレッドシートの"name" 列 をLIKE 検索(文字列が含まれていればヒット扱い)して、ヒットした行の "name" と "address" を取得する、といったつくりになっている。

 

なお、複数行ヒットしたら複数行返すようにはしたが、例えば 神社の "神" なんて送られてきた日には100件超ヒットしてしまい、レスポンスがエラいことになるので

少し制御を入れてある。

 

以下のQRコード、もしくはボタンから友達追加すると、実際に触ってもらえるので、興味があればどうぞ。

無料プランなので 友達は 50人まで という制限がある。万が一追加できなかったら申し訳ない。。。

友だち追加

こいつが追加されるはず。

f:id:taiyaki_dos:20171130165733p:plain