重新询问 Facebook 中拒绝的权限不起作用
Re-ask declined permissions in Facebook not working
假设用户提示权限 A、B、C 并拒绝 B。登录将失败,但是当我尝试再次执行登录时,没有显示我可以接受或撤销权限的对话框,而是显示对话框显示消息 "You've already authorized app name" 并且权限 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:这个问题与相同,但解决方案不适用于我的情况,我也试过了。
好的,我找到问题了。我使用的是 SDK 4.3.0。现在我正在使用 4.7.0 工作。
假设用户提示权限 A、B、C 并拒绝 B。登录将失败,但是当我尝试再次执行登录时,没有显示我可以接受或撤销权限的对话框,而是显示对话框显示消息 "You've already authorized app name" 并且权限 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:这个问题与
好的,我找到问题了。我使用的是 SDK 4.3.0。现在我正在使用 4.7.0