假设我的应用程序希望代表用户从第三方请求权限 A 和 B。
根据 OAuth 2.0 RFC,第三方无需授予这些权限。但是,如果返回的权限与我的应用程序请求的权限不同,则授予的范围将在第三方响应中返回。
通过阅读 Facebook 文档并在模拟跳过/拒绝流程时检查来自 Facebook 的响应,似乎未返回授予的范围,并且我的应用程序需要进行后续 api 调用以查看授予了哪些权限。
这样对吗?
最佳答案
简短的回答:是的,你有。
更长的答案:
向 https://graph.facebook.com/me/permissions?access_token=OAUTH_ACCESS_TOKEN_HERE
发出 API 调用- 在 PHP 或 JS SDK 中,您可以将其简化为 /me/permissions
因为 SDK 将为您包装服务器和访问 token 。
这显示了该用户当前授予您的应用程序的所有范围,示例输出为:
{
"data": [
{
"installed": 1,
"manage_friendlists": 1,
"status_update": 1,
"photo_upload": 1,
"video_upload": 1,
"create_event": 1,
"create_note": 1,
"share_item": 1,
"publish_stream": 1,
"publish_actions": 1,
"user_about_me": 1,
"friends_activities": 1
}
]
}
由于用户可以追溯删除先前授予的权限,因此无论如何您都需要不时执行此操作,因为即使您对特定权限请求中授予的范围进行了回调,用户也几乎可以撤销部分/全部权限紧接着。
关于facebook-graph-api - 根据 OAuth 2.0 RFC 处理 Facebook API 权限跳过/撤销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11130773/