【问题标题】:(#100) Tried accessing nonexisting field (messages) on node type (User)(#100)尝试访问节点类型(用户)上不存在的字段(消息)
【发布时间】:2020-11-19 01:26:51
【问题描述】:

当我尝试将消息发送到我的 Facebook 页面(链接到 Messenger 聊天机器人)时,我收到以下错误:

{
  "error": {
    "message": "(#100) Tried accessing nonexisting field (messages) on node type (User)",
    "type": "OAuthException",
    "code": 100,
    "fbtrace_id": "A5W_BFDXx9GgriZb697u5zv
"
  }
}

这也是输出的图像:

访问令牌肯定是有效的。我在下面测试过:

请注意,该页面既未经过企业验证,也未经过个人验证。我不知道这是否有作用。但是,即使页面访问令牌看起来正确,我也无法运行 GET 查询。

更新 - 使用页面访问令牌

【问题讨论】:

  • 您使用的是用户令牌,而不是页面令牌。
  • @CBroe 好的,我错过了一个好点。现在我生成了一个新令牌,我得到了同样的错误,但页面"(#100) Tried accessing nonexisting field (messages) on node type (Page)"
  • @CBroe 消息是否仅对 POST 请求有效?...而我/对话对 GET 请求有效?请查看此stackoverflow.com/questions/54234305/…
  • A messages 边缘甚至不再在 Page 对象的文档中提及。 developers.facebook.com/docs/graph-api/reference/page/… 是阅读页面对话的方式。
  • 不,对于发送,这应该是正确的端点(尽管可能不是像 v2.6 这样大量过时的 API 版本。)但是你在这里处理的是 Messenger API,所以你应该首先阅读相关文档 - developers.facebook.com/docs/messenger-platform/reference/…

标签: facebook-graph-api facebook-access-token


【解决方案1】:

https://developers.facebook.com/docs/graph-api/reference/page/ 不再提及messages 边缘,但是如何使用它来发送消息,在 Messenger API 文档中进行了说明:

https://developers.facebook.com/docs/messenger-platform/reference/send-api/

因此,/me/messages 是正确的端点,可与页面访问令牌一起使用。而且由于发送消息是一个“创建”动作,它需要是一个 POST 请求。


请注意,您不能随心所欲地随时随地向任何人发送消息 - 通常,用户需要先与您的页面联系,然后您的机器人才能对此做出响应。 https://developers.facebook.com/docs/messenger-platform/send-messages 下解释了不同类型的消息传递及其限制的详细信息

【讨论】:

    猜你喜欢
    • 2019-06-11
    • 2018-07-20
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 2017-07-13
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多