这个问题在 Stack Overflow 上被问过很多次,但所有答案都解释了如何将 Facebook 个人资料 ID 转换为 app_scoped_user_id
。我要求的恰恰相反:
- 我有一个
app_scoped_user_id
,由 Facebook Graph API 提供。 - 我想要全局配置文件 ID,这样我就可以输出指向用户 Facebook 页面的链接。
这是我的 PHP 应用程序的流程:
- A Facebook Request生成为
/me
,返回Facebook Response - 在响应中,我调用 getGraphObject() 返回一个 Facebook Graph Object .
当使用我自己的 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
: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 页面
最佳答案
这个问题已经被问过几次了(Get Facebook User ID with Facebook App Scope ID)
您不应该能够从应用范围的 ID 中获取全局 ID。 Facebook 正在慢慢修复找到它的所有方法,因为它们被认为是“黑客”。
既然你提到了,从用户的个人资料页面有很多方法可以找到你的全局 ID,这可能也会被 Facebook 及时修复,但如果你仍然感兴趣,这个 ( How to find my own facebook ID? (not the app-scoped ID) ) 问题的一些答案可能会有用。
关于php - 从 app_scoped_user_id 中查找 Facebook 全局配置文件 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31050182/