无法通过Graph获取Facebook用户ID

时间:2013-12-04 10:31:56

标签: facebook facebook-graph-api

我正在开发iOS应用程序并发现当我执行requestForMyFriends时没有加载一个用户。

在进一步研究之后,似乎Graph API资源管理器也没有为特定的Facebook用户返回任何内容。它是用户,而不是Fanpage或其他东西。

所以:

我有一个例子页面(当我在浏览器中输入时会很好地调出页面):https://www.facebook.com/user-name

https://graph.facebook.com/https://www.facebook.com/user-name

将返回:

{
    id: "https://www.facebook.com/user-name"
}

https://graph.facebook.com/user-name

将返回:

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

http://findmyfacebookid.com/什么都不返回。

图API将返回:

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

我正在尝试使用我的测试Facebook帐户重现这一点,并将所有限制放在最大值,但我总是用FacebookId得到一个不错的结果。

我的问题: 我需要将哪些设置更改为我的测试Facebook帐户才能重现此问题?

2 个答案:

答案 0 :(得分:2)

“不支持的GET请求”涵盖了很多情况,但从根本上说,该消息意味着您尝试通过API通过API无法获取某些内容

对于尝试检索有关已知用户名或用户ID的数据的请求,最可能的原因是:

  • 用户已阻止您的应用
  • 用户已在其隐私设置中停用所有平台应用
  • 用户已停用其帐户
  • 用户已删除其帐户

如果我必须下注,我会说这是本案中的第二个

答案 1 :(得分:0)

问题是参数,您不必传递个人资料的整个网址,只需传递用户名/个人资料ID。

例如:我们想获得马克扎克伯格的信息。他的Facebook用户名是 zuck 。该网址为https://graph.facebook.com/zuck,将返回以下输出

{
   "id": "4",
   "name": "Mark Zuckerberg",
   "first_name": "Mark",
   "last_name": "Zuckerberg",
   "link": "http://www.facebook.com/zuck",
   "username": "zuck",
   "gender": "male",
   "locale": "en_US"
}

使用https://graph.facebook.com/4(4是Mark Zuckerberg的个人资料ID)会产生相同的输出。

修改
经过一番进一步的调查后发现,该用户可能已经停用了她的帐户,这就是您看到此错误的原因。我使用过我的某个应用的测试用户,转到设置 - >安全 - >停用我的帐户和分类,每次向Graph API发出的请求都会返回您看到的结果。