facebook-graph-api - Facebook Messenger 页面范围 ID (PSID) 的困惑

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

我只是对 Facebook 的 API (v2.10) 返回的 ID 的范围类型有点困惑。

我正在通过调用此端点来请求页面对话,

$endpoint =/{PAGE_ID}/conversations?fields=id,thread_key,参与者,发件人,snippet,can_reply

以及在参与者发送者字段中,根据docs ,我看到一个 'id' => string。我不知道这个 ID 属于什么范围。

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

问题是我试图匹配该页面是否由同一个人发送消息,但我不能,因为这两个人返回的 ID不同.

帮忙?

最佳答案

从 API v3.2 开始,我注意到发送者/参与者的 ID 与 webhook 提供的相同 PSID 匹配。 v2.10 中可能有所不同,但现在 v3.2 中它们是相同的。 ID 差异也可能是由于您的访问 token 造成的,请尝试使用页面范围的访问 token ,以便 /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. 消息显示在现有线程中,所有 future 回复都会显示在 Webhook 和现有对话线程中。

关于facebook-graph-api - Facebook Messenger 页面范围 ID (PSID) 的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46694510/

相关文章:

facebook - 在没有进一步权限提示的情况下获取授权的 Facebook 用户的年龄

facebook - 在 Facebook 墙上分享 HTML5 播放器

botframework - Microsoft Bot Framework 何时支持 Facebook 聊天扩展

c# - 如何在 Facebook Channel 中为 Bot Framework 设置不同的语言?

facebook - 如何为多个消息应用程序/机器人使用单个 Webhook?

javascript - 我如何在 Meteor 中访问用户的 Facebook 好友列表?

iOS Facebook Messenger,打开并完成任务后自动关闭链接

facebook-messenger - 如何使用带附件的快速回复

botframework - 隐藏 Facebook Messenger Bot 中的软键盘

facebook - 获取 friend 列表并了解他们是否安装了我的应用程序