这个问题在Stack Overflow上已经被问了很多次,但所有的答案都解释了如何将Facebook个人资料ID转换为
为了证明这个问题是可以回答的,我可以使用返回的
app_scoped_user_id
。我要求的恰好相反:
- 我有一个由Facebook Graph API提供的
app_scoped_user_id
。 - 我想要全局的个人资料ID,以便可以输出用户Facebook页面的链接。
- 通过Facebook请求向
/me
发送请求,返回一个Facebook回复 - 在回复中,我调用getGraphObject()方法返回一个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账户的ID,我需要提供一个链接到我的Facebook账户。这可以通过访问http://facebook.com/profile.php?id=XXXXX来轻松完成,即使你已经为你的帐户命名,它也会自动重定向到正确的页面。
然而,在Graph对象响应中指定的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
值通过访问http://facebook.com/profile.php?id=100000218905189来访问我的实际Facebook页面。
link
属性了,这就是你需要链接到用户个人资料的全部内容。当有人在浏览器中访问该URL时,Facebook会自动将他们重定向到“正确”的地址。 - CBroe