Путаница с идентификаторами области действия страницы Facebook Messenger (PSID)

У меня просто небольшая путаница в отношении типов идентификаторов, возвращаемых Facebook API (v2.10).

Я запрашиваю обсуждения страницы, вызывая эту конечную точку,

$endpoint = /{PAGE_ID}/conversations?fields=id,thread_key,participants,senders,snippet,can_reply

и в полях participants и senders согласно документам., я получил 'id' => string. Я понятия не имею, к какой области относится этот идентификатор.

Когда я принимаю вебхук сообщения, я может получить доступ к PSID отправителя.

Проблема в том, что я пытаюсь сопоставить, отправляется ли странице сообщение одним и тем же человеком, но я не могу, потому что идентификаторы, возвращаемые этими двумя, различны.

Помощь?


person Danny Ng    schedule 11.10.2017    source источник


Ответы (1)


Что касается API версии 3.2, я заметил, что идентификаторы отправителей/участников совпадают с теми же идентификаторами PSID, которые предоставляет веб-перехватчик. Возможно, они были другими в версии 2.10, но теперь они одинаковы в версии 3.2. Разница в идентификаторах также может быть связана с вашим токеном доступа. Попробуйте использовать токен доступа на уровне страницы, чтобы /me возвращал ожидаемую страницу.

  1. Я смог перечислить существующие разговоры и их конечных пользователей в https://graph.facebook.com/v3.2/me/conversations?fields=id,participants&access_token=PAGE_ACCESS_TOKEN (также можно использовать поле отправителей)
  2. Я использовал https://graph.facebook.com/v3.2/me/messages?access_token=PAGE_ACCESS_TOKEN для публикации сообщения с использованием JSON { recipient: { id: "<PSID>"}, message: { text: "message" }}, где PSID — это идентификатор из поля идентификатора участников (а не идентификатор потока).
  3. Сообщение появляется в существующей ветке, и все будущие ответы отображаются как в веб-перехватчике, так и в существующей ветке беседы.
person ceedob    schedule 07.01.2019