LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Wednesday, August 1, 2018

LINE BOTで「クイックリプライ」を使う


LINEのMessaging APIで「クイックリプライ」が公開されたので試してみました

このように送ったメッセージ(hello)に対して
メッセージと選択肢を返せるようになりました

LINE 8.11.0 以降から対応しているそうなので
それ以前のバージョンの場合はスマホのLINEアプリの更新が必要です



例として
hello と送ると

Select a button below というメッセージを返して

world
Send location
camera
camera roll
という選択肢(ボタン)を返す例を以下のコード.gsに書きました



コード.gs
var CHANNEL_ACCESS_TOKEN = "TOKEN";

function doPost(e) {
    var contents = e.postData.contents;
    var obj = JSON.parse(contents)
    var events = obj["events"];
    for (var i = 0; i < events.length; i++) {
        if (events[i].type == "message") {
            reply_message(events[i]);
        }
    }
}

function reply_message(e) {
    if (e.message.type == "text") {
        if (e.message.text == "hello") {
            var postData = {
                "replyToken": e.replyToken,
                "messages": [{
                        "type": "text",
                        "text": "Select a button below",
                        "quickReply": {
                            "items": [{
                                    "type": "action",
                                    "action": {
                                        "type": "message",
                                        "label": "world",
                                        "text": "World"
                                    }
                                },
                                {
                                    "type": "action",
                                    "action": {
                                        "type": "location",
                                        "label": "Send location"
                                    }
                                },
                                {
                                    "type": "action",
                                    "action": {
                                        "type": "camera",
                                        "label": "camera"
                                    }
                                },
                                {
                                    "type": "action",
                                    "action": {
                                        "type": "cameraRoll",
                                        "label": "Camera roll"
                                    }
                                }
                            ]
                        }
                    }

                ]
            };
        }
    }
    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);
}


返せる選択肢について
  • text:テキストを返す
  • location:場所を送る
  • camera:カメラを開く
  • camera roll:保存された画像を開く

関連記事

LINE BOTの作り方


参考

using-quick-reply
https://developers.line.me/en/docs/messaging-api/using-quick-reply/

quick-reply
https://developers.line.me/en/reference/messaging-api/#quick-reply

【LINE】「Messaging API」の新機能、「クイックリプライ」を公開 返答内容を選択・タップするだけで、メッセージへ返信
https://linecorp.com/ja/pr/news/ja/2018/2331

Latest post

スプレッドシートA列にある複数のテキストをスライドに追加したい(Google Apps Script)

今回Google Apps Scriptでやりたいこと GoogleスプレッドシートA列にある複数の値を取得して Googleスライドに渡して 図形オブジェクトのテキストとして追加したい ① スプレッドシートのA列に値を入れておく ② Code.gsのinsertNewShape...