我已经在我的原生 android 应用程序中成功实现了对 facebook 的授权。
现在我有以下问题:
用户从我的应用程序中注销,我调用 facebook sdk 注销方法。但是当用户按下登录按钮时,它会自动重定向回我的应用程序而不显示“已授权”窗口,因此他无法切换到另一个用户。
这是正常行为还是我做错了什么?我该如何解决这个问题?
我已经在我的原生 android 应用程序中成功实现了对 facebook 的授权。
现在我有以下问题:
用户从我的应用程序中注销,我调用 facebook sdk 注销方法。但是当用户按下登录按钮时,它会自动重定向回我的应用程序而不显示“已授权”窗口,因此他无法切换到另一个用户。
这是正常行为还是我做错了什么?我该如何解决这个问题?
如果您想切换到其他用户,您可以参考Facebook SDK for Android中的“SwitchUserSample” 。
这是一些示例代码仅供参考。
Session currentSession = Session.getActiveSession();
currentSession.closeAndClearTokenInformation();
newSession = new Session.Builder(LoginActivity.this).build();
newSession.openForRead(new Session.OpenRequest(LoginActivity.this)
.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO)
.setCallback(statusCallback));
不,这不是默认的,我们可以切换用户。在您进行注销时,您没有正确清除凭据,因此会出现此类问题,因此您需要完美地删除凭据。
您应该通过Facebook 为所有功能提供的 HackBook 代码,您必须将 Facebook 对象保存在 SessionStore 类中并相应地处理它:
private class SessionListener implements AuthListener, LogoutListener {
@Override
public void onAuthSucceed() {
setImageResource(R.drawable.logout_button);
SessionStore.save(mFb, getContext());
}
@Override
public void onAuthFail(String error) {
}
@Override
public void onLogoutBegin() {
}
@Override
public void onLogoutFinish() {
SessionStore.clear(getContext());
setImageResource(R.drawable.login_button);
}
}