从app_scoped_user_id查找Facebook全球个人资料ID

时间:2015-06-25 12:18:38

标签: php facebook facebook-graph-api

Stack Overflow已多次询问此问题,但所有答案都解释了如何将Facebook个人资料ID转换为app_scoped_user_id。我要的恰恰相反:

  • 我有一个app_scoped_user_id,由Facebook Graph API提供。
  • 我想要全局个人资料ID,因此我可以将链接输出到用户的Facebook页面。

以下是我的PHP应用程序的流程:

使用我自己的Facebook帐户进行身份验证时,这是图形对象的内容:

array (size=11)
  'id' => string '1117686364915316' (length=16)
  'email' => string 'greg.bowler@g105b.com' (length=21)
  'first_name' => string 'Greg' (length=4)
  'gender' => string 'male' (length=4)
  'last_name' => string 'Bowler' (length=6)
  'link' => string 'https://www.facebook.com/app_scoped_user_id/1117686364915316/' (length=61)
  'locale' => string 'en_GB' (length=5)
  'name' => string 'Greg Bowler' (length=11)
  'timezone' => int 1
  'updated_time' => string '2015-06-23T10:12:53+0000' (length=24)
  'verified' => boolean true

由此,我需要能够提供我的Facebook帐户的链接。这可以通过了解Facebook帐户的ID轻松完成,购买转到http://facebook.com/profile.php?id=XXXXX,如果您已经为帐户命名,它甚至会重定向到正确的页面。

但是,图表对象响应中指定的ID是我的全局Facebook ID;它是app_scoped_user_id,特定于我正在验证的应用程序。

如何将app_scoped_user_id转换为我帐户的全局ID?

例如,网站http://findmyfacebookpageid.com/执行此操作,但其源代码已关闭。

我可以在此处向app_scoped_user_id

提供我的{ facebook_id: "100000218905189" } 服务

然后它返回:

facebook_id

为了证明这个问题是可以回答的,我可以使用返回的RectF r = new RectF(); mymatrix.mapRect(r); Rect rect = new Rect((int)r.left,int)r.top,int)r.right+width,int)r.bottom+height); 值来访问我的实际Facebook页面,访问http://findmyfacebookpageid.com/get.php?url=https://www.facebook.com/app_scoped_user_id/1117686364915316

1 个答案:

答案 0 :(得分:2)

这个问题已被问过几次(Get Facebook User ID with Facebook App Scope ID

您应该无法从应用程序范围的ID中获取全局ID。 Facebook正在慢慢修复找到它的每种方法,因为它们被认为是“黑客”。

既然你提到过,从用户的个人资料页面上就有办法找到你的全球ID,这个ID可能也会被Facebook及时修复,但如果你仍然感兴趣,可以回答一些问题(How to find my own facebook ID? (not the app-scoped ID) )问题可能有用。