从应用程序范围的用户ID获取Facebook用户ID

时间:2014-05-22 11:43:35

标签: facebook facebook-graph-api facebook-apps

随着从Facebook Graph API v1.0升级到v2.0,Facebook正在使用"应用程序范围的用户ID",因此我看不到"原始"我的应用程序中的用户ID了。

我总是使用实时更新和图形API调用,例如" https://graph.facebook.com/{postId}/comments"分析应用所在的Facebook页面上的用户活动。但由于这些数据包含原始用户ID,因此我无法将活动与我的注册用户进行匹配!

那么有没有办法从应用程序范围的用户ID获取原始Facebook用户ID?或者反过来呢?

编辑:

我最终使用此处提到的API方法获取所有用户的应用范围ID:https://stackoverflow.com/a/29154912/3432305并将其存储在我的数据库中以及旧ID。 然后,每当RTU到达时,对于老用户"我会检查哪个用户具有此应用程序范围的ID并处理更新。 至少Facebook设法在API v1.0被弃用的前几天修复了评论中提到的错误(Get Facebook User ID from app-scoped User ID),因此对于我的应用程序的新用户来说,它就像一个魅力。到目前为止......

6 个答案:

答案 0 :(得分:28)

来自Johannes N.

之间的对话
  

我可以通过原始用户获取应用范围的ID(对于我拥有的应用)   ID。这也有帮助。

要从原始用户ID获取应用范围的ID,可以通过以下方式轻松完成:

  

https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USER_ID&access_token=ACCESS_TOKEN

enter image description here

Yo可以使用fields参数仅返回id:

  

https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USER_ID&fields=id&access_token=ACCESS_TOKEN

enter image description here

ID 的好处,而不是 id ,因为您可以查询多个ID:

enter image description here * www可以删除,以尽量减少字符数。

从用户名获取应用范围的ID也很容易:

  

https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USERNAME&access_token=ACCESS_TOKEN

enter image description here

答案 1 :(得分:10)

根据应用程序范围的用户ID,没有(简单/明显)获得真实用户ID的可能性。

答案 2 :(得分:6)

你不能从范围变回真实。您最好的选择是将所有这些转换为范围。非常简单:

  

https://graph.facebook.com/?ids=REAL_ID&access_token=APP_ID|APP_SECRET

这是一些简单的Ruby代码:

require 'open-uri'
require 'json'

json = JSON.load(open("https://graph.facebook.com/?ids=#{real_id}&access_token=#{FACEBOOK_APP_ID}|#{FACEBOOK_APP_SECRET}"))
scoped_id = /app_scoped_user_id\/(\d+)\//.match(json[real_id.to_s]['link'])[1]

答案 3 :(得分:-1)

我发现一个网站可以帮助您从app scoped id获取Facebook用户ID。

就在这里http://izitools.com/en/tool/get-facebook-id-from-scoped-id

enter image description here

API

enter image description here

答案 4 :(得分:-5)

有一个脏黑客来检索原始用户ID

http://graph.facebook.com/app-scoped-id这将返回facebook公开信息,如下所示, {    " id":" app-scoped-id",    " first_name":" xxxx",    "性别":"男性",    " last_name":" yyyy",    "链接":" https://www.facebook.com/zzzz",    " locale":" en_US",    " name":" xxxx yyyy",    "用户名":" zzzz" }

然后,您使用用户名进行另一个图表API呼叫 http://graph.facebook.com/zzzz

这将返回原始的facebook ID和其他公共信息,而不是app-scoped-id

答案 5 :(得分:-5)

https://www.facebook.com/app_scoped_user_id/670839443061245

问问自己为什么从这个链接用户名来源。

{
   "id": "670839443061245",
   "first_name": "Lucas",
   "gender": "male",
   "last_name": "Ou-Yang",
   "link": "https://www.facebook.com/L",
   "locale": "en_US",
   "name": "Lucas Ou-Yang",
   "username": "L"
}