2015-06-25 62 views
1

在堆栈溢出时,这已被问及很多次,但所有答案都解释了如何将Facebook个人资料ID转换为app_scoped_user_id。我要求完全相反:从app_scoped_user_id查找Facebook全球个人资料ID

  • 我有一个app_scoped_user_id,由Facebook Graph API提供。
  • 我想要全局配置文件ID,所以我可以输出链接到用户的Facebook页面。

这是我的PHP应用程序的流程:

当我自己的Facebook账户验证,这是图形对象的内容:

array (size=11) 
    'id' => string '1117686364915316' (length=16) 
    'email' => string '[email protected]' (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到这里的服务:http://findmyfacebookpageid.com/get.php?url=https://www.facebook.com/app_scoped_user_id/1117686364915316

,并返回:

{ 
facebook_id: "100000218905189" 
} 

为了证明这个问题回答的,我可以使用返回facebook_id值来访问我的实际Facebook页面通过访问http://facebook.com/profile.php?id=100000218905189

+0

_“我想全球的个人资料的ID,这样我就可以输出链接到用户的Facebook页面” _ - 你不这不需要一个全球性的ID。您已经在您显示的API输出中获得了一个'link'属性,这就是您需要链接到用户配置文件的全部内容。当某人在浏览器中访问该URL时,Facebook将自动将其重定向到“正确”地址。 – CBroe

+0

@CBroe问题在于,应用程序范围的用户链接需要用户登录才能看到配置文件。想象一下,建立一个像about.me这样的社交网络中心,您可以在其中列出公开账号供全世界查看。 – Greg

+0

如果我没有登录,http://facebook.com/profile.php?id=100000218905189不会显示我的任何东西,除了你的个人资料图片和姓名......我想你可以假设,如果有人按照外部链接你的FB个人资料,他们也应该愿意登录到Facebook,如果他们想看到你的个人资料的更多细节。 – CBroe

回答

1

此问题已被询问了几次(Get Facebook User ID with Facebook App Scope ID

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

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

+0

也许我会问错误的问题吗?我所需要的就是能够将用户个人资料的URL输出到屏幕上,以便我可以输出链接到他们的个人资料。 – Greg

+0

如果你想链接到他们的个人资料,你有应用范围的ID,你可以链接到https://www.facebook.com/app_scoped_user_id/{app-scoped-id}/,它应该重定向到用户个人资料。 –

+0

不幸的是,事实并非如此。即使我的个人资料是公开的,我也会看到Facebook登录页面。另外,我想要这个ID,这样我可以像这样显示我的个人资料图片http://graph.facebook.com/100000218905189/picture - 没有全局ID,这将不可能? – Greg