Stack Overflow已多次询问此问题,但所有答案都解释了如何将Facebook个人资料ID转换为app_scoped_user_id
。我要的恰恰相反:
app_scoped_user_id
,由Facebook Graph API提供。以下是我的PHP应用程序的流程:
/me
发出Facebook Request,返回Facebook Response 使用我自己的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
答案 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) )问题可能有用。