17

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?

John
  • 909
  • 4
  • 12
  • 29
  • I see here a similar discussion: http://stackoverflow.com/questions/19129017/is-there-a-way-to-get-the-id-of-a-message-thread-in-facebook – Nutscracker Apr 09 '17 at 22:34
  • Sadly that doesn't help. "As of August 8, 2016, FQL will no longer be available and cannot be queried." I'm only using the Graph API. – John Apr 10 '17 at 20:40
  • Having this issue as well! – George Edward Portillo Apr 12 '17 at 06:30
  • @John, have you gotten anything? – George Edward Portillo Apr 13 '17 at 14:45
  • Sadly I didn't find a solution, yet. – John Apr 13 '17 at 14:48
  • Apparently this isn't possible without searching through all of the conversations to find the one that contains the message you want. I was told that Messenger webhook updates will soon start including `thread_key`, but I'm not sure when or if that will happen. – GJK Jun 26 '17 at 18:17
  • I am also facing same query for Facebook API. Please let me know if there is any other solution. I also need Conversation ID from its one of the Message ID. Thanks – Mansi Shah Jul 04 '18 at 09:37

2 Answers2

8

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/

Mihai
  • 831
  • 6
  • 13
1

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.

Kareem
  • 5,068
  • 44
  • 38