使用Graph API获取的app-scoped user id链接跳转至Facebook主页,无法访问用户资料求助
我来帮你梳理下这个问题的解决思路哈——其实这个跳转问题不是技术bug,是Facebook隐私政策调整后的有意限制,咱们可以从这几个方向入手解决:
别再用
app_scoped_user_id链接访问用户主页了
Facebook早在几年前就收紧了隐私权限,这类基于应用范围ID的链接已经不再指向用户的公开主页,而是直接跳转到Facebook首页,目的就是防止第三方应用通过获取的ID直接触达用户的公开资料,保护用户隐私。通过Graph API直接拉取用户公开资料
只要你的应用拿到了用户的public_profile权限(这是默认权限,一般不用额外审核),就可以直接调用Graph API获取用户的公开字段,比如名称、头像、主页链接(如果用户允许公开的话)。举个请求示例:GET /{user-id}?fields=id,name,picture,link这里返回的
link字段,如果用户的主页设置为公开,会是用户真实的Facebook主页链接;如果用户隐私设置不允许公开,这个字段可能不会返回,或者返回的链接无法访问——这种情况咱们只能尊重用户的隐私选择。检查权限与用户隐私设置
如果调用API后link字段还是无法访问,大概率是用户把自己的主页设置成了仅好友可见或者更严格的权限。这种情况下,你没法强制绕过隐私设置,建议只展示通过API能获取到的公开信息(比如头像、昵称),不要引导用户跳转无法访问的链接。考虑升级Graph API版本
你试了v2.10,但现在Facebook支持的稳定版本已经到v18.0了。新版本的API更贴合当前的隐私政策,字段返回逻辑也更清晰。不过升级的时候要注意,不同版本的权限要求和字段可能有变化,得提前对照官方文档调整你的请求逻辑。
内容的提问来源于stack exchange,提问作者Ielgohary

