3

假设用户提示输入权限 A、B、C 并拒绝 B。登录将失败但是当我尝试再次执行登录时,而不是显示我可以接受或撤销权限的对话框,而是显示消息“你”的对话框ve 已授权的应用程序名称“显示并且权限 B 仍然被拒绝。

我正在使用此代码执行 Facebook 登录:

设置代码:

FacebookSdk.sdkInitialize(getApplicationContext());
...
if (mCallbackManager == null) {
    mCallbackManager = CallbackManager.Factory.create();
    mDeniedPermissions = new ArrayList<>(Arrays.asList(...));
}

登录代码:

LoginManager.getInstance().registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        ...
        mDeniedPermissions = loginResult.getRecentlyDeniedPermissions();             
    }
    ...
});
LoginManager.getInstance().logInWithReadPermissions(this, mDeniedPermissions);

我已尝试再次请求所有权限,仅针对已撤销的权限,执行LoginManager.getInstance().logOut()以清除会话但似乎没有任何效果......一旦撤销,仅使用 Facebook 应用程序或网站再次恢复它们。
我该如何解决这个问题?

ps:这个问题与这个问题相同,解决方案在我的情况下不起作用,我也试过了。

4

1 回答 1

1

好的,我发现了问题。我使用的是 SDK 4.3.0。现在我正在使用 4.7.0 user2403096对kyanro帖子的回答

于 2015-10-20T16:32:23.867 回答