假设用户提示输入权限 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:这个问题与这个问题相同,但解决方案在我的情况下不起作用,我也试过了。