【问题标题】:Why do some Facebook User Ids randomly throw a graph exception?为什么某些 Facebook 用户 ID 会随机抛出图形异常?
【发布时间】:2015-03-15 16:00:46
【问题描述】:

我使用 Facebook 图形 API 上的公开数据获取 Facebook 用户 ID。当我查询一些用户时,我得到的是正常的公共信息。但是,当我使用具有不同用户 ID 的相同查询时,它会返回以下错误:

"Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api", 
"type": "GraphMethodException", 
"code": 100

我整理了一些例子:

随机返回错误的用户:102029859682848661020367022990452710201183468423349

正常工作的用户:53554824658147710153112866849029618670188244877934186386626804

有什么想法吗?

【问题讨论】:

  • 您使用的是哪个 API 版本?
  • 我遇到了一些在网站上可以查看的id,但是不能通过API查询。 Facebook 团队的某个人可能会给出一个合乎逻辑的答案,例如 @wizkid
  • 最新版本 2.2 - 这甚至发生在 Graph API Explorer 中。
  • 用户ID从何而来?如果它们不是由您尝试通过请求请求信息的同一应用程序“创建”的,则会产生错误。另外,您使用的是用户还是应用访问令牌?
  • 正如 Tobi 所提到的,您不能在多个应用程序中使用特定的用户 ID。所有 id 都是基于每个应用程序生成的,并且仅适用于特定应用程序。图形资源管理器中的 id 在它之外无法工作。

标签: facebook facebook-graph-api


【解决方案1】:

在更简单的 v1.0 时代,当 Graph API 报告用户时,它提供的 id 值是该 Facebook 用户的全局 ID 号。这些值是“全局的”,因为它们可以在客户端应用程序之间共享。在 v2.0 中,/user 端点及其子端点提供的所有用户数据都使用特定于应用程序的 id。这些 id 不仅是 Facebook 用户的唯一标识符,也是客户端-用户对的唯一标识符。这意味着您不能在应用程序之间共享用户 ID。 (尽管 Facebook 确实提供了一个 API,用于在属于单个组织的应用程序之间进行映射。)

这一事实的一个重要后果是,您用于开发的 Facebook 应用程序识别的用户 ID 与您的生产应用程序识别的用户 ID 不匹配。因此,如果您在生产环境中将用户的 Facebook id 存储在数据库中,您将无法将该数据库中的用户与开发中 API 返回的数据进行匹配。这很烦人!

而且没有办法解决它。您只需从开发应用程序中查询您的几个朋友,然后手动覆盖他们在开发数据库中存储的 Facebook id。这将为您提供一些可用于开发的示例。

【讨论】:

    猜你喜欢
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多