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

kol*_*lli 42 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被弃用的前几天修复了评论中提到的错误(从应用程序范围的用户ID获取Facebook用户ID),因此对于我的应用程序的新用户来说,它就像一个魅力.至今...

林果皞*_*林果皞 27

从约翰内斯N之间的谈话.

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

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

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

在此输入图像描述

你可以使用fields参数只返回id:

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

在此输入图像描述

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

在此输入图像描述 *www可以删除,以尽量减少字符数.

要从用户名获取应用范围的ID,也可以轻松完成:

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

在此输入图像描述

  • 似乎不再起作用了.尝试使用上述用户ID为4的Facebook Graph Explorer返回""id":"http://www.facebook.com/4"`now. (29认同)

Joh*_* N. 10

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


Sam*_*fes 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]
Run Code Online (Sandbox Code Playgroud)

  • 赞成这个想法,但遗憾的是它无法解决我的问题...对于已注册的用户,我在登录应用程序时仍会获得"真实"ID.事实上,这就是我现在的主要问题 - 拥有"真实"ID的用户以及具有应用范围ID的用户..而且RTU只有其中一个.. (4认同)