【问题标题】:Facebook send api - Unable to send a message using user idFacebook 发送 api - 无法使用用户 ID 发送消息
【发布时间】:2023-04-05 02:30:02
【问题描述】:

当我从https://developers.facebook.com/docs/messenger-platform/send-api-reference 执行以下请求时

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient":{
    "id":"USER_ID"
  },
  "message":{
    "text":"hello, world!"
  }
}' "https://graph.facebook.com/v2.6/me/messages?access_token=PAGE_ACCESS_TOKEN"

我收到此错误:

Graph returned an error: (#100) Parameter recipient[id]: Invalid id: "the id of the recipient"

文档指出:

ID 必须是通过 Messenger 入口点或通过 Messenger webhook 检索到的 ID(例如,某人可能在 Messenger 中发现您的业务并从那里开始对话。这些 ID 是页面范围的 ID (PSID) 。这意味着给定页面的 ID 是唯一的。如果您有现有的 Facebook 登录集成,则用户 ID 是应用范围的,并且不适用于 Messenger 平台。

我不明白从哪里获取 id。有人可以解释如何获取要在 API 中使用的 id 吗?

【问题讨论】:

  • 你为用户使用了什么ID?你到底是怎么得到的?您知道只有在用户开始使用您的机器人后才能获得它,对吧?
  • 首先设置您的机器人,然后向您的 Facebook 用户发送消息。 facebook为此提供了示例代码,只需查看文档即可。只有当用户与您的机器人交互时,您才会获得一个 id。用示例代码做一些测试,你会看到。
  • 当用户向您发送消息时,您将获得页面范围内的用户 ID。你不能只给随机的人发消息

标签: php facebook api facebook-graph-api curl


【解决方案1】:

当用户向您发送消息时,您会从 webhook 获取用户 ID。此 ID 不是用户的 ID,而是为每个用户在进入您的页面时分配一个唯一的 ID。然后使用此 ID 在您的页面和用户之间进行通信。

【讨论】:

  • 从页面的 feed api 或页面消息的图形 api 收到的 userId 是否与此 id 相同?
  • 我也面临上述问题,你有正确答案吗?
猜你喜欢
  • 1970-01-01
  • 2012-10-03
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多