When I receive a “message received callback” event from the Facebook Realtime API (webhooks) I want to fetch previous messages in the conversation. To do that I need the ID of the conversation thread.
https://developers.facebook.com/docs/messenger-platform/webhook-reference/message?locale=en_US
The event does not contain any information about the ID of the conversation thread (t_id). It only contains the message ID (mid).
https://developers.facebook.com/docs/graph-api/reference/v2.8/conversation
Is there a way to get the conversation thread ID?
2
Answers
There is no straight way of doing it. You can use the workaround below to loop conversation ids:
(a) Fetch all conversation ids with sender ids https://graph.facebook.com/v3.0/–PAGE-ID–/conversations?fields=senders
(b) lookup the user_id of the sender of the message. https://graph.facebook.com/v3.0/–MESSAGE-ID–?fields=from
(c) loop through conversation ids to find a match for the message user_id and get the thread_id.
PS: this is an expensive solution. Try to avoid it unless you really need it.
I thing there is an easier way to do this. You can use the user_id filter on conversations:
https://graph.facebook.com/v3.0/–PAGE-ID–/conversations?fields=senders&user_id=
See the Parameters section from here: https://developers.facebook.com/docs/graph-api/reference/page/conversations/