如何调用Facebook Graph API获取其他用户元数据及解决权限报错
Facebook Graph API 获取其他用户元数据操作方案
你当前报错的核心原因是使用了权限极低的应用级访问令牌,且未获得目标用户的授权,不符合Facebook用户数据获取的规则,可按以下步骤操作:
- 必须获取目标用户的主动授权:需要让你要查询数据的用户走Facebook OAuth 2.0登录流程,授权你的应用获取对应权限,查询关系状态需要申请
user_relationships权限,授权完成后你会获得对应用户的用户级访问令牌,不可再使用之前通过client_credentials生成的应用令牌调用用户数据接口。 - 测试阶段免审核配置:如果仅做内部测试,可在App Dashboard的「角色和功能」板块下,将需要测试的用户添加为「测试人员」,添加后测试用户授权应用即可正常获取数据,无需提前通过平台审核。
- 公开应用需提交权限审核:如果你的应用要面向所有普通用户开放使用,
user_relationships属于平台规定的高级权限,需要在App Dashboard的「应用审核」板块提交权限申请,说明权限的使用场景、业务用途并上传操作演示视频,审核通过后普通用户的授权才会生效。 - 接口调用调整:拿到有效的用户级访问令牌后,调用接口时需要显式声明你要获取的字段,示例请求如下:
curl -i -X GET "https://graph.facebook.com/{TARGET_USER_ID}?fields=relationship_status,metadata&access_token={VALID_USER_ACCESS_TOKEN}"
注意:Facebook平台严格限制用户数据获取规则,未获得用户本人授权的前提下,没有任何方式可以获取任意用户的非公开元数据,哪怕你已经持有用户ID也无法调用。
内容的提问来源于stack exchange,提问作者Konstantin
相关产品推荐
相关产品推荐

