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はスプレッドシートやドライブにもアクセスできるので、
あとはアイデア次第で色々できるかと思います。
ぜひ何か作ってみてください。
