大家好,我使用 Android facebook sdk 3.0.1 和我的登录方法:
public void connect(){
Session.openActiveSession(HTFacebook.context, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state, Exception exception) {
if(exception != null){
Log.e(TAG,"exception----->" + exception.getMessage());
}
if(session.isOpened()){
List<String> permissions = session.getPermissions();
if(!isSubsetOf(PERMISSIONS, permissions)){
Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(HTFacebook.context, PERMISSIONS);
session.requestNewReadPermissions(newPermissionsRequest);
return;
}
MeRequest(session, null, null);
}
}
});
}
这种方法让我可以正确登录,但是当我注销时,我无法登录更多并且 facebook 出现错误(见附图)
这是我的注销方法:
public void logout(){
if(Session.getActiveSession().isOpened()){
Session.getActiveSession().closeAndClearTokenInformation();
Session.getActiveSession().close();
Session.setActiveSession(null);
this.userInfo=null;
this.userId=null;
}else{
//already logged out
}
}
我想清除令牌信息,因为我想更改用户。那么如何在 closeAndClearTokenInformation() 之后生成可以正常工作的新会话?
PS:如果我删除 closeAndClearTokenInformation 方法都可以正常工作,但我无法更改用户,如果我在我的应用程序上使用来自 Facebook 应用程序的不同用户登录,我仍然是旧用户。
谢谢!