Php 从应用程序\范围\用户\ ID查找Facebook全局配置文件ID

Php 从应用程序\范围\用户\ ID查找Facebook全局配置文件ID,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,关于堆栈溢出的问题已经被问了很多次,但所有的答案都解释了如何将Facebook个人资料ID转换为应用程序范围的用户ID。我的要求恰恰相反: 我有一个由Facebook Graph API提供的应用程序用户id 我想要全局配置文件ID,这样我就可以将链接输出到用户的Facebook页面 以下是我的PHP应用程序的流程: 对/me,返回一个 在响应中,我调用getGraphObject()返回一个 使用我自己的Facebook帐户进行身份验证时,以下是Graph对象的内容: array (s

关于堆栈溢出的问题已经被问了很多次,但所有的答案都解释了如何将Facebook个人资料ID转换为
应用程序范围的用户ID
。我的要求恰恰相反:

  • 我有一个由Facebook Graph API提供的
    应用程序用户id
  • 我想要全局配置文件ID,这样我就可以将链接输出到用户的Facebook页面
以下是我的PHP应用程序的流程:

  • /me
    ,返回一个
  • 在响应中,我调用getGraphObject()返回一个
使用我自己的Facebook帐户进行身份验证时,以下是Graph对象的内容:

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 buy Gong to轻松实现,如果你已经命名了你的帐户,它甚至会重定向到正确的页面

但是,在图形对象响应中指定的ID不是我的全局Facebook ID;它是一个
app\u scoped\u user\u id
,特定于我正在验证的应用程序

如何将
应用程序范围的用户id
转换为我帐户的全局id?

例如,尽管其源代码已关闭,但网站仍执行此操作

我可以在此处向服务提供我的
app\u scoped\u user\u id

它返回:

{
facebook_id: "100000218905189"
}

为了证明这个问题是可以回答的,我可以使用返回的
facebook\u id
值访问我的实际facebook页面

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


既然你提到了这个问题,从用户的个人资料页面可以找到你的全球ID,Facebook可能也会及时修复这个ID,但是如果你仍然感兴趣,这个()问题的一些答案可能会很有用。

也许我问错了问题?我只想将用户配置文件的URL输出到屏幕上,这样我就可以输出一个链接到他们的配置文件。如果你想链接到他们的配置文件,并且你有应用程序范围的ID,你可以只链接到{app scoped ID}/并且它应该重定向到用户的配置文件。不幸的是,情况并非如此。即使我的个人资料是公开的,我也会看到一个Facebook登录页面。另外,我想要ID,这样我就可以像这样显示我的个人资料图片-如果没有全局ID,这是不可能的,不是吗?我相信你是对的,你需要登录facebook才能使用{app scoped ID}/链接。尽管如此,我相信你可以使用应用程序范围的ID来显示个人资料图片:(我刚刚用你的ID测试了一下,它成功了)“我想要全局个人资料ID,这样我就可以将链接输出到用户的Facebook页面”——你不需要全局ID。在显示的API输出中已经有一个
link
属性,这就是链接到用户配置文件所需的全部内容。当有人在浏览器中访问该URL时,Facebook将自动将其重定向到“正确”地址。@c问题是,遵循应用程序范围的用户链接需要用户登录才能查看配置文件。想象一下建立一个像about.me这样的社交网络中心,你想在这里列出世界各地的公共帐户。如果我没有登录,除了你的个人资料图片和姓名之外,也不会向我显示任何内容……我想你可以假设,如果有人跟踪你的FB个人资料的外部链接,如果他们想查看有关您个人资料的更多详细信息,他们也应该愿意登录Facebook。@CBroe如果Facebook在回复中提供ID,似乎会更容易,但我同意您关于登录的看法。。。好像我被FB逼着做这样一个简单的任务。感谢您的输入。如果他们仍然提供全局用户id,那么首先引入应用程序范围的用户id将毫无意义。