Android Facebook:getPermissions无效

时间:2013-06-07 11:49:40

标签: android facebook permissions

我正在尝试确定我的用户是否拥有发布权限,我正在运行下一个代码:

private static final List<String> PERMISSIONS = Arrays.asList("publish_actions");
private void post(Bundle postParams){
    // Check for publish permissions    
    List<String> permissions = Session.getActiveSession().getPermissions();
    if (!isSubsetOf(PERMISSIONS, permissions)) {
        // Ask for permission logic
    }
    else{

        // Post logic
    }
}

private boolean isSubsetOf(Collection<String> subset, Collection<String> superset) {
    for (String string : subset) {
        if (!superset.contains(string)) {
            return false;
        }
    }
    return true;
}

但是,即使我从facebook Session.getActiveSession().getPermissions()的我的应用程序帐户中删除了权限,也会在里面返回一个包含该权限的列表。

我做错了什么?如何在Facebook上清除权限缓存?

1 个答案:

答案 0 :(得分:1)

您的会话认为它具有的权限会缓存在设备上,因此一旦获得这些权限,它就会认为它具有这些权限。但是,如果用户将其从网站中删除,则发布请求将失败。您可以在此处看到Facebook建议您如何处理这些错误 - https://developers.facebook.com/docs/reference/api/errors/

在您提出请求之前,实际上无法知道用户是否已从网站上删除了权限。

如果您想知道应用随时拥有的确切权限集,您可以随时自行向/ me /权限发出图表请求。