如何将全局ID转换为应用程序范围ID

时间:2014-08-25 19:52:01

标签: facebook facebook-graph-api

我为我公司的游戏开发过管理系统。我们打开了一个页面让用户报告问题。然而,facebook的新系统让我们对每个应用程序更改的userID感到困惑,但页面仍然只显示真正的facebook userID,这通常与应用程序范围ID不同

我想知道一种以编程方式将真实用户ID转换为应用范围ID的方法

无论如何都要这样做吗?

非常感谢

4 个答案:

答案 0 :(得分:5)

您不能只将真实ID转换为范围ID,而是:

答案 1 :(得分:5)

可以检索应用范围的用户ID,虽然它有点古怪。

对于您希望应用范围ID的用户使用的访问令牌,使用URL获取具有全局ID的用户:

https://graph.facebook.com/v2.2/?ids=[COMMA SEPARATED LIST OF USER IDS]&fields=link

响应将采用以下格式:

{
  "700230415": {
    "link": "https://www.facebook.com/app_scoped_user_id/10158562170695476/", 
    "id": "700230415"
  }, 
  "700634149": {
    "link": "https://www.facebook.com/app_scoped_user_id/10152566310960142/", 
    "id": "700634149"
  },
}

然后,您可以解析link字段以获取应用范围ID。

答案 2 :(得分:0)

您无法将全局user_id“转换”为应用范围的用户ID。由于你没有描述你的“管理系统”究竟做了什么,所以几乎不可能给你一个建议。

可能您的“管理系统”使用的是使用Graph API v1.0的应用程序(即2014年4月30日之前创建的)。这就是为什么你仍然会看到全局user_ids。

可以在请求之前添加/v2.0,这应该会为您提供应用范围的user_id,但这对您没什么帮助,因为每个应用都有所不同。正如@luschn所描述的那样,您可以使用Business Mapping API(https://developers.facebook.com/docs/apps/for-business)来获取特定用户的所有应用范围的user_id。

答案 3 :(得分:-1)

如果您想将全局ID转换为范围ID,我想您应该知道:

  • Facebook API Ver 2.x的范围ID
  • 与应用程序连接的一个全局ID将具有范围ID。这意味着如果您有一百个单独的应用程序,则每个应用程序
  • 每个全局ID都有一百个范围ID