Line BotをGoogle App Scriptで無料で手軽に試してみる。
http://qiita.com/osamu1203/items/0de2909821a1b3cbb350
こちらの記事を参考にLine Botを運用していたのですが、BOT API Trial Account廃止の通達がありました。
そこで、LINE Messaging APIの動作確認も兼ねて、オウム返しをするBotを作成しました。
#LINE準備
https://business.line.me/ja/services/bot
Messaging APIを始める
で適当に入力してアカウントを作る。
さらにオウム返しをするため
LINE@ MANAGER にてアカウント選択 > アカウント設定 > Bot設定
Webhook送信:利用する
自動応答メッセージ:利用しない
#アプリケーション準備
Googleドライブ > 新規作成 > Google Apps Script
// LINE Developers > Basic Information > Channel Access Token から取得
var channel_access_token = "<Channel Access Token>";
function doPost(e) {
var events = JSON.parse(e.postData.contents).events;
events.forEach(function(event) {
if(event.type == "message"){lineReply(event);}
else if(event.type == "follow"){ /* 友だち追加・ブロック解除 */ }
else if(event.type == "unfollow"){ /* ブロック */ }
});
}
function lineReply(e) {
var postData = {
"replyToken" : e.replyToken,
"messages" : [
{
"type" : "text",
"text" : ((e.message.type=="text")? e.message.text : "Text以外")
}
]
};
var options = {
"method" : "post",
"headers" : {
"Content-Type" : "application/json",
"Authorization" : "Bearer " + channel_access_token
},
"payload" : JSON.stringify(postData)
};
UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options);
}
ファイル > 保存
公開 > ウェブ アプリケーションの導入
プロジェクト バージョン:新規作成
アプリケーションにアクセスできるユーザー:全員(匿名ユーザーを含む)
導入ボタンを押すと「現在のウェブ アプリケーションのURL」が分かる。
このURLを
LINE developers > Basic information > Webhook URL
に設定する。
#botを友だち追加
LINE developers > Basic information > QR Code
のQRコードをスマホで読み取り、友だちに追加。
botに話しかけるとオウム返しをします。
QRコードに書かれたURLを他に教えれば、誰でもbotを友だちに登録できると思います。
#その他・悩んだところ
-
上記コード上では友だち追加時に何もしない処理になってますが、このタイミングでuserIdをスプレッドシートにでも記録しておけばプッシュ通知も簡単にできる(と思います)。
-
今のところServer IP Whitelistは指定しなくても動きます。
-
webhookのリクエストヘッダにX-Line-Signatureがあるそうなのですが、Google Apps ScriptのdoPostでは取得できないんでしょうか?
-
botに関わるLINEの設定がLINE@ MANAGER、LINE developersの2箇所に分かれているのがややこしい。