我已經在我的原生android應用程序中成功實現了與Facebook的授權。如何將授權的Facebook用戶與Facebook Android SDK切換?
現在我有以下問題:從我的應用程序
用戶註銷和我打電話的Facebook SDK註銷方法。但是,當用戶按下登錄按鈕時,它會自動重定向回我的應用程序,而不顯示「已授權」窗口,因此他無法切換到其他用戶。
這是正常行爲還是我犯了錯誤?我該如何解決這個問題?
我已經在我的原生android應用程序中成功實現了與Facebook的授權。如何將授權的Facebook用戶與Facebook Android SDK切換?
現在我有以下問題:從我的應用程序
用戶註銷和我打電話的Facebook SDK註銷方法。但是,當用戶按下登錄按鈕時,它會自動重定向回我的應用程序,而不顯示「已授權」窗口,因此他無法切換到其他用戶。
這是正常行爲還是我犯了錯誤?我該如何解決這個問題?
不,這不是默認的,我們可以切換用戶。當你正在做註銷時,你沒有正確地清理憑證,所以出現這樣的問題,所以你需要完全刪除憑證。
你應該通過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);
}
}
我試過Hackbook示例。它有同樣的問題。當我註銷並再次登錄時,它不顯示「已授權屏幕」。 – 2012-07-31 08:12:47
如果你想切換到另一個用戶,可以參考到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));
你有沒有解決過這個問題? – BlueVoodoo 2013-04-08 11:28:09
看來,當用戶與官方Facebook應用程序打開會話,然後,它永遠不會要求我們的Android應用程序的權限。嘗試在FB官方應用程序中關閉會話。 – cibercitizen1 2014-02-19 10:15:39
@BlueVoodoo用戶必須在手機中的官方FB應用程序中關閉會話,不僅在「我們的自定義應用程序」中。 – cibercitizen1 2014-02-19 10:17:41