【问题标题】:Getting ids_for_pages from Graph returns empty从 Graph 获取 ids_for_pages 返回空
【发布时间】:2017-07-28 11:09:23
【问题描述】:

我在 Messenger 中跨应用和机器人连接人们时遇到了一些问题。

https://developers.facebook.com/docs/messenger-platform/connecting-accounts

我已经将我的开发人员 Facebook 应用(与 Facebook 登录和 Messenger 产品)关联到 Business 以及页面。

我的目标是让我的服务器能够通过应用程序中的登录用户来识别信使用户。因此,当用户访问 Messenger 时,将获得与应用程序相同的体验。

问题是:当我尝试从图中获取 ids_for_pages 时,它返回的数据为空,即使在该用户与机器人交谈之后也是如此。

图表 GET (v2.10)

/{user_login_id}/ids_for_pages?access_token={user_login_access_token}&appsecret_proof={appsecret_proof}

{"data": []}

当我使用 Page-Scoped ID 时,我可以获得ids_for_apps(如果用户已经登录到我的应用程序,我可以使用它来匹配用户),但是如果用户与bot 然后转到我的应用程序,我认为我无法匹配用户。 我还使用token_for_business 研究了业务映射 API,但它是必要的用户节点。在应用中很棒,但我无法通过 Page-Scoped ID 获取用户令牌或用户节点。

https://developers.facebook.com/docs/apps/for-business

我做错了吗?缺少权限?我的机器人已经上线,并且有pages_messaging。

任何指导都有帮助!感谢您的宝贵时间!

编辑

正如amuramoto所说,我使用了错误的access_token。它必须与我在ids_for_apps 中使用的相同。

/{user_login_id}/ids_for_pages?access_token={page_access_token}&appsecret_proof={appsecret_proof}

【问题讨论】:

  • 您是否使用了正确的访问令牌?文档中的示例显示调用ids_for_pages 需要app acess token,而不是用户访问令牌。
  • 时机几乎完美!一些测试和稍后阅读我也注意到了这一点。确实不是正确的令牌!!!我将登录令牌作为错误的 access_token。由于没有错误消息,我没有注意到。无论如何感谢您的回答amuramoto!你完全正确!
  • 这里的user_login_id是指哪个id?图 ID 还是应用 ID?还有如何生成 appsecret_proof。

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


【解决方案1】:

把这个放在这里,以防将来有人遇到这个问题。

您没有使用正确的访问令牌。文档中的示例显示,对 ids_for_pages 的调用需要页面范围的访问令牌,而不是用户访问令牌。

【讨论】:

  • 我认为我使用的是页面访问令牌,但遇到了同样的问题。结果是其他用户的空数据,但对我来说不是。如何知道我正在使用的令牌是否是页面访问令牌?
  • @Diego PSID 来自app settings UI 或来自POST request to the API。您还可以使用access token debugger 查看您的令牌的权限范围
  • 当我在“{user-page-id}/ids_for_pages”上使用 APP 访问令牌时,api 返回 Messenger Sender ID ok。这意味着用户在“双方(页面和信使)”上都有一个 ID。但是,当我在“{messenger-sender-id}/ids_for_apps&appsecret_proof”上使用 PAGE 访问令牌时,它对其他用户返回空,但对我来说页面 id。有任何想法吗?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-18
  • 2014-08-19
  • 2018-10-02
  • 2015-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多