MessagingAPIでクイックリプライを使ってみよう!


はじめに

LINEのMessagingAPIの中にクイックリプライというものがあります。
クイックリプライは、Botのメッセージに対してあらかじめリプライを設定しておくことで、ボタンをタップするだけで簡単に返信ができます。

今回はGAS + MessagingAPIを用いてシンプルなクイックリプライを実装していきます。

以前に投稿した記事もよかったらぜひ
MessagingAPI + GASでメッセージ送信(+定期実行設定)

実装

const TOKEN = "自分のアクセストークン";
const HEADERS = {
  "Content-Type": "application/json; chrset=UTF-8",
  "Authorization": "Bearer " + TOKEN
}
const LINE_PUSH_ENDPOINT = "https://api.line.me/v2/bot/message/push";

function quickReply() {
  const postData = {
    "to": "USERID", //対象ユーザーのUserId
    "messages": [{
      "type": "text",
      "text": "クイックリプライを使ってみよう!",
      "quickReply": {
        "items": [
          {
            "type": "action",
            "action": {
              "type": "message",
              "label": "クイックリプライボタン1",
              "text": "ボタン1メッセージ"
            }
          },
          {
            "type": "action",
            "action": {
              "type": "message",
              "label": "クイックリプライボタン2",
              "text": "ボタンメッセージ2"
            }
          }
        ]
      }
    }]
  }

  const params = {
    "methods": "POST",
    "headers": HEADERS,
    "payload": JSON.stringify(postData)
  };

  UrlFetchApp.fetch(LINE_PUSH_ENDPOINT, params);
}

メッセージアクション

メッセージアクションは、クイックリプライのボタンがタップされると、textプロパティに設定した文字列をユーザーからのメッセージとして送信します。

詳細は以下の公式ドキュメントを見るといいかと思います。

また、画像URLを指定することでリプライボタンの先頭に画像を表示させることもできます。

メッセージアクション以外にも様々なアクションを指定することができます!

  • ポストバックアクション
  • メッセージアクション(今回使用したアクション)
  • URIアクション
  • 日時選択アクション
  • カメラアクション
  • カメラロールアクション
  • 位置情報アクション

実行結果

今回の実装例の場合、以下のようになります。

quickReply()を実行すると、対象のユーザーに「クイックリプライを使ってみよう!」とメッセージが送信され、そのメッセージ下にクイックリプライボタンが表示されます。

このボタンをタップすると、ボタンに設定したメッセージが送信されます。

参考