Facebook Realtime API(ウェブフック)から「メッセージ受信コールバック」イベントを受け取ったとき、会話内の前のメッセージをフェッチしたい。そのためには、会話スレッドのIDが必要です。
https://developers.facebook.com/docs/messenger-platform/webhook-reference/message?locale=en_US
イベントには、会話スレッドのID(t_id)に関する情報は含まれていません。メッセージID(mid)のみが含まれます。
https://developers.facebook.com/docs/graph-api/reference/v2.8/conversation
会話スレッドIDを取得する方法はありますか?
これを行う簡単な方法があると思います。会話でuser_idフィルターを使用できます。
https://graph.facebook.com/v3.0/--PAGE-ID--/conversations?fields=senders&user_id=
ここからパラメーターのセクションを参照してください: https://developers.facebook.com/docs/graph-api/reference/page/conversations/
それを行うためのまっすぐな方法はありません。以下の回避策を使用して、会話IDをループできます。
(a)送信者IDを含むすべての会話IDを取得する https://graph.facebook.com/v3.0/--PAGE-ID--/conversations?fields=senders
(b)メッセージの送信者のuser_idを検索します。 https://graph.facebook.com/v3.0/--MESSAGE-ID--?fields=from
(c)メッセージuser_idの一致を見つけるために会話IDをループし、thread_idを取得します。
PS:これは高価なソリューションです。本当に必要な場合以外は、避けてください。