3

我已經在我的原生android應用程序中成功實現了與Facebook的授權。如何將授權的Facebook用戶與Facebook Android SDK切換?

現在我有以下問題:從我的應用程序

用戶註銷和我打電話的Facebook SDK註銷方法。但是,當用戶按下登錄按鈕時,它會自動重定向回我的應用程序,而不顯示「已授權」窗口,因此他無法切換到其他用戶。

這是正常行爲還是我犯了錯誤?我該如何解決這個問題?

+1

你有沒有解決過這個問題? – BlueVoodoo 2013-04-08 11:28:09

+0

看來,當用戶與官方Facebook應用程序打開會話,然後,它永遠不會要求我們的Android應用程序的權限。嘗試在FB官方應用程序中關閉會話。 – cibercitizen1 2014-02-19 10:15:39

+0

@BlueVoodoo用戶必須在手機中的官方FB應用程序中關閉會話,不僅在「我們的自定義應用程序」中。 – cibercitizen1 2014-02-19 10:17:41

回答

0

不,這不是默認的,我們可以切換用戶。當你正在做註銷時,你沒有正確地清理憑證,所以出現這樣的問題,所以你需要完全刪除憑證。

你應該通過HackBook code given by Facebook得到了所有功能,在那裏你必須保存在SessionStore類Facebook的對象,並相應地處理它:

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); 
    } 
} 
+0

我試過Hackbook示例。它有同樣的問題。當我註銷並再次登錄時,它不顯示「已授權屏幕」。 – 2012-07-31 08:12:47

1

如果你想切換到另一個用戶,可以參考到Facebook SDK for Android中的「SwitchUserSample」。

這是一些示例代碼fyi。

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));