Q&A

メッセージではなくリッチメニューが押されたことをWebhookで検知したい

前提

Firebase Cloud Functionsを使っています。

実現したいこと

リッチメニューが押されたときに、その時のタイムスタンプとユーザーの情報をFirestoreに保存したいです。

リッチメニューは3つあり、そのうち2つがアクションでテキストを返します。 この時「ユーザーがテキストを送信したのではなく、リッチメニューのアクションとして自動で送信されたメッセージ」と判断する方法はあるのでしょうか??

①ユーザーが「テスト」とメッセージを送信 ②ユーザーがリッチメニューを押してアクションとして自動で「テスト」とメッセージが送信された

①の場合はFirestoreに何も保存せず、②の場合のみFirestoreに値を保存したいです。 なのでリッチメニューのアクションとして送信されたメッセージであることを、Webhookのイベントで検知したいです。

何か良い方法などありますでしょうか??🤔

  • 0
  • 3
  • 996
  • twitter facebook

リッチメニューにポストバックアクションを設定するには、LINE Official Account ManagerではなくMessaging APIでリッチメニューを作成する必要があるそうなのでまずはそちらから試していきたいと思います!

https://developers.line.biz/ja/docs/messaging-api/using-rich-menus/#choosing-tool-for-creating-rich-menus

それからポストバックアクションで実現しようと思います!

  • 0

同じくポストバックアクションがおすすめです。(https://developers.line.biz/ja/reference/messaging-api/#postback-action ) ポストバックアクションのボタンをユーザーが押すと|displayText|が画面に表示されるとともに、|data|の部分はwebhookに送信できます。まさに実現したいことではないでしょうか。

  • 1

「ユーザーがリッチメニューを押した」というアクションを、Webhookで受け取りたいのであれば、リッチメニューにポストバックアクションを設定するのがいいと思います。 https://developers.line.biz/ja/reference/messaging-api/#postback-action

ポストバックアクションを設定しておくと、Webhookでポストバックイベントが飛んできます。 https://developers.line.biz/ja/reference/messaging-api/#postback-event

ポストバックアクション?どんなものだろう?と思ったら、リッチメニュープレイグラウンドというLINE公式アカウントと友だちになることで、実際の挙動を確認できます。 https://developers.line.biz/ja/docs/messaging-api/try-rich-menu/#try-postback-action

  • 1
本当によろしいですか? question.vm