我有两个基本的Facebook应用程序,一个是使用v2.8
图形api版本创建的,另一个是使用图形api的v2.9
版本创建的(如应用程序仪表板中所述: https://developers.facebook.com/apps/ {ID} /仪表板/)
使用v2.9
图表API的最后一个应用程序似乎无法请求用户公开个人资料信息。但使用2.8
的人即使使用2.9
api版本也可以这样做。
两个应用都具有相同的参数: - 年龄限制:13岁以上 - 国家限制:不 - 酒精:没有
https://graph.facebook.com/v2.9/123456789?access_token= {app1_id} | {app1_secret}
{
"name": "Name of the guy",
"id": "123456789"
}
https://graph.facebook.com/v2.9/123456789?access_token= {app2_id} | {app2_secret}
{
"error": {
"message": "Unsupported get request. Object with ID '123456789' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api",
"type": "GraphMethodException",
"code": 100,
"fbtrace_id": "CQ9V460Jycd"
}
}
尽管如此,我仍然可以通过Mark Zuckerberg等应用程序访问某些用户的个人资料信息。
因此,我的第二个应用程序似乎没有此配置文件的正确权限。但我无法理解为什么,因为:
- 我要求的用户个人资料与我的应用没有任何关联
- 我正在尝试访问public_profile
数据,这是默认授权。
用户是否可以限制可以访问其公开个人资料信息的api版本? 我怎么调试呢?有没有办法找出用户配置文件是否受限于特定的api版本?
感谢您的帮助!
答案 0 :(得分:0)
正如CBroe所回答的那样,自Facebook图形v2.0以来,用户ID的范围是应用程序。
这意味着来自一个应用程序的user id
获取不一定与另一个应用程序一起存在(但是,对于某些配置文件,它可能存在...)。
如果您想使用多个应用程序并在用户之间建立链接:
您必须使用“业务经理”https://developers.facebook.com/docs/apps/business-manager#create-business
用户必须使用您的每个应用登录