【问题标题】:Unusual behavior of facebook grap API ("type": "GraphMethodException", "code": 100)facebook 图形 API 的异常行为(“type”:“GraphMethodException”,“code”:100)
【发布时间】:2014-01-24 06:39:52
【问题描述】:

我在通过图形 API 为某些用户获取一些数据时遇到了一些异常错误。 例如众所周知,我们可以通过graph.facebook.com/username 获取基本用户信息 它有效。但它不适用于某些用户。就像用户 www.facebook.com/sanzida.tanzum 是一个有效的 facebook 用户。所以,我们应该通过graph.facebook.com/sanzida.tanzum获取她的基本信息。但是当你尝试这样做时,你会得到错误

 {
   "error": {
      "message": "Unsupported get request.",
      "type": "GraphMethodException",
      "code": 100
   }
}

这不是权限问题,因为使用用户自己在尝试通过图形 API 检索自己的数据时会遇到同样的错误。实际上用户 sanzida.tanzum 对图形 API 是不可见的。例如,用户 sanzida.tanzum 在我的朋友列表中。你可以在这里查看。 my friendlist.(它是公开的)。但是当我通过图形 API 检索我的好友列表时,我的好友列表显示不包括用户 sanzida.tanzum !但是她在我的好友列表里! 我曾试图就此事联系 facebook,因为我没有找到任何与此事相关的文档。他们回答说这很正常。 (可能他们根本没有阅读我的邮件。我包括与 facebook 的电子邮件对话)

你好তৌফিক,

他们收到错误是因为他们不是你……他们没有 查看您所做的相同事情的权限。他们也可能失踪 访问令牌。无论哪种方式:这里没有错误。

谢谢,

Emrakul 安全 Facebook

-----原始消息-----来自:*****@ovi.com 收件人:主题:报告安全漏洞 - facebook graph API 中的异常错误

您的电子邮件地址:*****@ovi.com 安全漏洞?:是漏洞类型:隐私/ 认证漏洞范围:平台开发者 API 标题: facebook 图形 API 产品/URL 中的异常错误: https://graph.facebook.com/sanzida.tanzum 描述和影响:我 出于测试目的进行了一些图形 API 调用。主要是我在做 主要是用户配置文件调用。 (https://graph.facebook.com/exampleuser)

不知何故,我意识到 Facebook 正在为某些用户提供以下错误 甚至他们在我的好友列表中。当他们尝试通过时也会发生同样的事情 自己。

例如,用户“https://www.facebook.com/sanzida.tanzum”已开启 我的好友列表。 (我的好友列表是公开的,你可以查看。) 所以,根据 facebook graph API,我可以请求用户的基本信息 信息使用 (https://graph.facebook.com/sanzida.tanzum) 但它返回 这个错误:

"{ "错误": { "message": "不支持的获取请求。", "type": "GraphMethodException", "代码": 100 } }"

实际上,graph API 无法访问该用户的任何内容。其他 例如.. 当我通过图形 API 请求我的好友列表时,所有好友 除了用户 (sanzida.tanzum) 之外,我的好友列表显示。但她在 我的好友列表!在这里查看(我的好友列表是公开的) “https://www.facebook.com/toufiqueimam/friends”。那么这是为什么 只发生在少数用户身上?

刚才我得到确认,用户自己也遇到了同样的错误 如果她尝试访问 (https://graph.facebook.com/sanzida.tanzum)

{ “错误”:{ "message": "不支持的获取请求。", "type": "GraphMethodException", “代码”:100 } }

复制说明/概念证明:复制:先到先得 到https://www.facebook.com/sanzida.tanzum 你会看到它是有效的 轮廓。现在试试https://graph.facebook.com/sanzida.tanzum 你会的 出现以下错误

{ “错误”:{ "message": "不支持的获取请求。", "type": "GraphMethodException", “代码”:100 } }

【问题讨论】:

    标签: facebook facebook-graph-api


    【解决方案1】:

    这不是错误,该错误表示您尝试访问的数据对您来说是不可访问的、不存在的、已被删除的、不可用的,因为您没有从可以看到的用户等。

    请参阅此答案以获取与 Facebook 页面相关的此错误消息的示例:https://stackoverflow.com/a/6847088/21062 - 如果该用户屏蔽了您、屏蔽了您的应用、禁用了他们的帐户或禁用了所有用户,则在尝试访问用户个人资料时也是如此应用程序访问他们的信息。

    【讨论】:

    • 正如我所说,用户在我的好友列表中(查看我的好友列表,我提供了链接并且我的好友列表是公开的)。所以用户没有阻止我。这是她的公开数据。用户自己也遇到了这个错误。最后她显示在我的好友列表中,但是当我通过图形 api 检索我的好友列表时,为什么她没有显示在我的好友列表中? (这是问题中最奇怪的部分)
    • 我最后提到的可能是:“禁止所有应用程序访问其信息。” - 这是用户帐户的隐私设置,可防止任何应用访问有关用户的任何信息
    • 对! Gocha .. 但遗憾的是,这意味着它也阻止了 facebook 的官方图形 api 浏览器:(
    • 是的,它会阻止所有应用程序,这是该隐私设置的目的 - 如果图形 api 浏览器被豁免,那么该设置的描述将不正确
    • 谢谢大家。 Egy先生解释得很好:)
    【解决方案2】:

    仅供参考,我遇到了这个问题,并不是因为用户阻止了所有应用程序。在我的场景中,我的应用程序试图将 Facebook 的 64 位整数强制转换为 53 位 JavaScript 整数(Node 应用程序)。它破坏了值,所以当我在应用程序生命周期的后期发出 Facebook GET 请求时,我使用了破坏的值,Facebook 试图告诉我“嗯,这个 UserId 不存在”。

    所以在我的应用程序中,我必须使用 Node Big-integer 插件,以及用于我的 Mongodb 的 Mongoose mongoose-long 插件。

    长话短说,如果您要将 UserId 转换为其本机 64 位整数,请不要这样做,除非您的应用程序中的整数类型至少为 64 位。

    【讨论】:

      猜你喜欢
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多