Google Apps Script で LINE Bot を作成する

「Bot」をご存じでしょうか。
Bot (ボット) は robot (ロボット) のIT分野における略称で、操作や作業を自動で行うプログラムのことを指します。
たとえば、コミュニケーションツールの1つであるLINEですが、Messaging APIというものが用意されており、誰でもLINE Botを作成できます。
Messaging APIを使用することで、任意のURLでWebhookイベントを受け、応答メッセージを送ることができます。
今回はGoogle Apps Scriptで、Webhookを受けるWebAPIを用意し、メッセージをそのまま返すLINE Botを作成してみます。
1. LINE Botアカウントの作成
まずは、Botアカウントを用意します。
LINE Messaging API のサイト ( https://developers.line.biz/ja/services/messaging-api/ )
でログインし、チャネル(Line Bot)を作成します。
Botに関する項目を入力し、作成したらMessaging API 設定でチャネルアクセストークンを発行します。
Botのグループへの参加可否やあいさつメッセージ有無等の設定も可能です。
2. WebAPIの作成
次に、Google Apps Script ( https://script.google.com/ )
でログインし、プロジェクトを作成します。
下記のコードを入力します。
ACCESSTOKENには、先ほど発行したチャネルアクセストークンを設定します。
const ACCESSTOKEN = "発行したチャネルアクセストークン"; const URL = "https://api.line.me/v2/bot/message/reply"; function doPost(e) { var events = JSON.parse(e.postData.contents).events; events.forEach(function(event) { if((event.type == "message") && (event.message.type == "text")) { reply(event); } }); } function reply(event) { UrlFetchApp.fetch(URL, { "headers": { "Content-Type": "application/json; charset=UTF-8", "Authorization": "Bearer " + ACCESSTOKEN, }, "method": "post", "payload": JSON.stringify({ "replyToken": event.replyToken, "messages": [{ "type": "text", "text": event.message.text, }], }), }); }
doPost関数がLINEからのWebhookイベントを受ける関数です。
イベントにはフォロー、メッセージなど色々種類がありますが、今回はメッセージ、さらにテキストの場合のみ返信するものとしています。
reply関数では、LINEの返信用APIを呼び出しています。
返信にはWebhookイベントに含まれる返信用トークン(replyToken)が必要となります。
返信するメッセージは、受信したテキストメッセージをそのまま設定しています。
では、これをWebAPIとして公開します。
メニューの 公開 から ウェブアプリケーションとして導入 を選択します。
そして、実行者は自身、アクセスは全員として、デプロイします。
公開したWebAPIのURLをメモしておきます。
3. Webhookの設定
再びMessaging APIの設定に戻ります。
URLに先ほどのWebAPIのURLを入力し、Webhookの利用をONにします。
これで完了です。
QRコードで友達に追加して実際にメッセージを送ってみます。
このように送信したメッセージを自動で返してきます。
以上です。
今回はメッセージをそのまま返信する単純なBotでしたが、
GoogleAppsScriptはスプレッドシートやドライブにもアクセスできるので、
あとはアイデア次第で色々できるかと思います。
ぜひ何か作ってみてください。