随着从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),因此对于我的应用程序的新用户来说,它就像一个魅力。到目前为止......
答案 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
Yo可以使用fields参数仅返回id:
ID 的好处,而不是 id ,因为您可以查询多个ID:
* www可以删除,以尽量减少字符数。
从用户名获取应用范围的ID也很容易:
https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USERNAME&access_token=ACCESS_TOKEN
答案 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
答案 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"
}