我正在使用 facebook sdk 3.0 登录我的应用程序。登录工作正常。一旦我注销我的应用程序,它就不会发生。
我的注销代码:
Facebook mFb=new Facebook("xxxxxxxx");
mFb.logout(this);
给我一些想法来做到这一点。
我正在使用 facebook sdk 3.0 登录我的应用程序。登录工作正常。一旦我注销我的应用程序,它就不会发生。
我的注销代码:
Facebook mFb=new Facebook("xxxxxxxx");
mFb.logout(this);
给我一些想法来做到这一点。
我一直面临同样的问题最后我找到了这个修复
public void logout()
{
Session session = Session.getActiveSession();
if (session != null) {
session.closeAndClearTokenInformation();
}
else
{
Session session2 = Session.openActiveSession((Activity)context, false, null);
if(session2 != null)
session2.closeAndClearTokenInformation();
}
Session.setActiveSession(null);
}
我不知道里面发生了什么,但我想如果找不到它,我们将不得不创建新会话并清除它的令牌信息。它对我有用。希望它会有所帮助。
试试这个:
if( mFb.isSessionValid() ) {
mFb.logout(getApplicationContext());
SessionStore.clear(getApplicationContext());
}
答:工作正常
Session.openActiveSession(this, true, new Session.StatusCallback() {
@Override
public void call(final Session session, final SessionState state, Exception exception){
// TODO Auto-generated method stub
if(session.isOpened()){
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
// TODO Auto-generated method stub
if(user!=null){
try{
session.close();
session.closeAndClearTokenInformation();
//state.isClosed();
}catch (Exception e) {
Log.e(tag, "getUserIdMethod--->"+e);
}
}
}
});
}
}});
对于 Facebook 使用:
LoginManager.getInstance().logOut();
注销。
您是否尝试在单独的线程上调用它:
public void logout()
{
new Thread(){
public void run() {
try {
mFacebook.logout(your_current_class_name.this);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}