Facebook图形API的异常行为(“type”:“GraphMethodException”,“code”:100)

4
我在通过Graph 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 Security Facebook
-----原始邮件----- 发件人:*****@ovi.com 收件人: 主题:报告安全漏洞——Facebook图形API中的异常错误
您的电子邮件地址:*****@ovi.com 您是否拥有安全漏洞的技术细节?:是 漏洞类型:隐私/身份验证 漏洞范围:平台开发人员API 标题:Facebook图形API中的异常错误 产品/网址:https://graph.facebook.com/sanzida.tanzum 描述和影响:我正在进行一些图形API调用以进行测试。主要是在调用用户配置文件方面。(https://graph.facebook.com/exampleuser
不知何故,我发现Facebook对某些用户甚至在我的好友名单上都会提供以下错误。当他们尝试自己做同样的事情时,也会出现相同的情况。
例如,用户“https://www.facebook.com/sanzida.tanzum”在我的好友名单上。 (我的好友名单是公开的,如果您想要检查,请检查。)因此,根据Facebook图形API,我可以使用(https://graph.facebook.com/sanzida.tanzum)请求用户的基本信息。但它返回此错误:
"{ “error”:{ “message”:“不支持的获取请求。”, “type”:“GraphMethodException”, “code”:100 } }"
实际上,图形API无法访问此用户的任何内容。另一个示例……当我通过图形API请求我的好友名单时,显示了我的好友名单的所有朋友,除了用户(sanzida.tanzum)。但她在我的好友名单中!在这里检查(我的好友名单是公开的) "https://www.facebook.com/toufiqueimam/friends"。那么为什么仅对某些用户会出现这种情况?
刚刚我确认,如果用户尝试访问(https://graph.facebook.com/sanzida.tanzum),她本人也会遇到相同的错误
{ "error": { "message": "不支持的获取请求。", "type": "GraphMethodException", "code": 100 } }
复制说明/概念证明:复制:首先转到https://www.facebook.com/sanzida.tanzum您将看到这是一个有效的配置文件。现在尝试https://graph.facebook.com/sanzida.tanzum您将获得以下错误
{ “error”:{ “message”:“不支持的获取请求。”, “type”:“GraphMethodException”, “code”:100 } }
2个回答

4
这不是一个错误,这个错误意味着你试图访问的数据对你不可用,不存在,已被删除,无法使用,因为你没有提供一个能够查看它的用户的访问令牌等原因。
参考这个答案,了解Facebook页面相关的错误信息示例:https://dev59.com/LWw15IYBdhLWcg3wFHtZ#6847088 - 当尝试访问用户资料时,如果该用户已将你屏蔽、屏蔽了你的应用程序、禁用了他们的账户或禁用了所有应用程序访问他们的信息,则同样适用。

正如我所说,该用户在我的好友列表中(请检查我的好友列表,我已经提供了链接并且我的好友列表是公开的)。因此,该用户没有屏蔽我。而这是她的公共数据。而且该用户本人也遇到了这个错误。最后,她在我的好友列表中显示,但为什么当我通过图形API检索我的好友列表时,她不在我的好友列表中呢?(这是问题最奇怪的部分) - Tonmoy
1
我最后提到的可能就是它:“禁用所有应用程序访问其信息。” - 这是用户帐户上的隐私设置,可以防止任何应用程序访问有关用户的任何信息。 - Igy
没错!明白了...但是很遗憾,这也意味着它会阻止Facebook的官方图形API浏览器 :( - Tonmoy
是的,它会阻止所有应用程序,这就是隐私设置的意图-如果图形API浏览器免除了该设置,那么该设置的描述将不正确。 - Igy
感谢大家。Egy先生解释得很清楚 :) - Tonmoy

3
仅供参考,我遇到了这个问题,并不是用户已经阻止了所有应用程序。在我的情况下,我的应用程序试图将Facebook的64位整数强制转换为53位JavaScript整数(Node应用程序)。它破坏了该值,因此当我在应用程序生命周期后期进行Facebook GET请求时,我使用的是被破坏的值,而Facebook试图告诉我“嗯,这个UserId不存在”。
因此,在我的应用程序中,我必须使用Node Big-integer附加组件以及Mongoose mongoose-long插件来处理我的Mongodb。
长话短说,如果要将UserId转换为其本机64位整数,请确保应用程序中的整数类型至少为64位。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接