Help us understand the problem. What is going on with this article?

Google Apps Scriptを使ってLINE Messaging APIでオウム返しをする

More than 3 years have passed since last update.

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした