5

大家好,我使用 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 应用程序的不同用户登录,我仍然是旧用户。

谢谢!

4

0 回答 0