facebook-graph-api - 根据 OAuth 2.0 RFC 处理 Facebook API 权限跳过/撤销

标签 facebook-graph-api oauth-2.0

假设我的应用程序希望代表用户从第三方请求权限 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/

相关文章:

ios - react-native-fbsdk 不返回电子邮件

authentication - 使用 Google OAuth2 进行非交互式授权

google-api - 在数据库中存储谷歌刷新 token ?

java - Spring-boot资源服务器仅在过期时验证 token

oauth-2.0 - 作为 OAuth 服务器,我应该如何生成和存储 OAuth 2.0 token ?

facebook - 为什么 Facebook Graph API 不列出页面的所有公共(public)事件?

objective-c - 错误 : "Calls to mailbox_fql have exceeded the rate of 300 calls per 600 seconds"

facebook - 如何通过图形 API 更改发布在 Facebook 上的照片的隐私设置

android - Android 中的 Facebook 发布对象

php - 在 HTTPS 响应的正文中返回一个 JSON 对象