【问题标题】:Facebook SDK, How do I check if a user has accepted my permissions?Facebook SDK,如何检查用户是否接受了我的权限?
【发布时间】:2014-02-16 17:19:25
【问题描述】:

在我的应用程序中,用户可以通过 Facebook SDK 登录。该应用程序请求读取和发布权限。有没有办法在继续之前检查他们是否接受了发布权限?权限为"publish_actions"。我尝试做Session.getPermissions();,但那里只列出了读取权限(basic_info, user_birthday, user_friends)

似乎无法检查用户是否接受了我的发布权限,是否有可能的解决方法?

我需要检查的原因是因为用户可以随时从他们的个人资料中撤销权限,所以我不能让他们登录然后撤销权限,否则会破坏请求的目的它。

非常感谢您的帮助,谢谢。希望这是可能的,而不是 Facebook 的限制(尽管我可以理解为什么会这样)。

【问题讨论】:

    标签: android facebook facebook-graph-api permissions


    【解决方案1】:

    根据 Facebook SDK v4+:

    获取与当前访问权限相关的权限列表 令牌,调用:

    AccessToken.getCurrentAccessToken().getPermissions();
    

    要获取拒绝权限的列表,请调用:

    AccessToken.getCurrentAccessToken().getDeclinedPermissions();
    

    【讨论】:

      【解决方案2】:

      对于您的应用,您可以使用任何有效的用户访问令牌,并调用 /me/permissions,它会返回用户授予您的应用的权限列表。

      有关更多文档,请参阅https://developers.facebook.com/docs/graph-api/reference/user/permissions/

      【讨论】:

      • 我明白了,好的。谢谢你。我目前的解决方案是检查我正在执行的签入的响应。如果失败,它会告诉您这是因为权限不存在。我想我现在可以删除它并使用此方法更早地进行检查。
      【解决方案3】:

      我认为检查权限的最佳方法:

      Facebook SDK 4.+:

      if (AccessToken.getCurrentAccessToken().getPermissions().contains("publish_actions")) { 
          //permission exists
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-30
        • 1970-01-01
        • 1970-01-01
        • 2015-11-13
        • 1970-01-01
        相关资源
        最近更新 更多