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:
ids的好处而不是id,因为您可以查询多个ID:
*www可以删除,以尽量减少字符数.
要从用户名获取应用范围的ID,也可以轻松完成:
https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USERNAME&access_token=ACCESS_TOKEN
你不能从范围回到真实.您最好的选择是将所有这些转换为范围.这很简单:
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)
归档时间: |
|
查看次数: |
64041 次 |
最近记录: |