困扰Facebook Messenger的页面范围ID(PSID)

时间:2017-10-11 17:46:02

标签: facebook-graph-api facebook-messenger facebook-messenger-bot

我对Facebook的API(v2.10)返回的ID的范围类型有点混淆。

我通过调用此终端来请求页面的对话,

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

并在participantssenders字段中,根据docs,我出现了'id' => string。我不知道这个ID的范围是什么。

当我接受message webhook时,我可以访问发件人的PSID。

问题是我试图匹配该页面是否由相同的人员发送,但我不能,因为这两者返回的ID是不同

帮助?

1 个答案:

答案 0 :(得分:0)

从API v3.2开始,我注意到发件人/参与者的ID与Webhook提供的PSID相同。可能在v2.10中有所不同,但现在在v3.2中相同。 id的差异也可能是由于您的访问令牌引起的,请尝试使用页面范围的访问令牌,以便/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是参与者id字段中的ID(而不是线程ID)。
  3. 该消息出现在现有线程中,所有以后的答复都同时显示在webhook和现有会话线程中。