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

时间:2014-01-06 18:51:07

标签: facebook facebook-graph-api

在通过图形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您是否有技术细节?   安全漏洞?:是漏洞类型:隐私/   身份验证漏洞范围:Platform Developer API标题:   Facebook图形API产品/网址中的不寻常错误:   https://graph.facebook.com/sanzida.tanzum描述和影响:我   正在做一些图形API调用以进行测试。我大部分时间都在做   主要是用户个人资料。 (https://graph.facebook.com/exampleuser

     

不知怎的,我意识到facebook正在为某些用户提供以下错误   即使他们在我的朋友名单上。当他们尝试时会发生同样的事情   自己。

     

例如,用户“https://www.facebook.com/sanzida.tanzum”已启用   我的朋友列表。 (我的朋友名单是公开的。您可以查看是否需要。)   所以,根据facebook图形API,我可以请求用户的基本   info using(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 个答案:

答案 0 :(得分:4)

这不是错误,错误意味着您尝试访问的数据无法访问,不存在,已被删除,因为您未提供访问令牌而无法访问可以看到它的用户等。

有关与Facebook页面相关的此错误消息的示例,请参阅此答案:https://stackoverflow.com/a/6847088/21062 - 尝试访问用户配置文件时,如果该用户已阻止您,阻止您的应用,停用其帐户或禁止所有应用访问其信息。

答案 1 :(得分:2)

仅仅是一个FYI,我遇到了这个问题,并不是因为用户阻止了所有应用程序。在我的场景中,我的应用程序试图将Facebook的64位整数强制转换为53位JavaScript整数(节点应用程序)。它正在破坏这个价值,所以当我在我的应用程序生命周期中稍后制作Facebook GET请求时,我正在使用损坏的价值这样做,并且Facebook试图告诉我“嗯,这个UserId不存在”。

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

长话短说,如果要将UserId转换为原生的64位整数,除非应用程序中的intger类型至少为64位,否则不要这样做。