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箇所に分かれているのがややこしい。 
