4

ネイティブ Android アプリで Facebook を使用した認証を正常に実装しました。

今、私は次の問題を抱えています:

アプリからユーザーがログアウトし、facebook SDK ログアウト メソッドを呼び出します。しかし、ユーザーがログインボタンを押すと、「既に承認されています」ウィンドウを表示せずに自動的にアプリにリダイレクトされるため、別のユーザーに切り替えることはできません。

それは正常な動作ですか、それとも私が何か間違ったことをしましたか? この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

別のユーザーに切り替えたい場合は、Facebook SDKforAndroidの「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));
于 2013-02-06T04:53:51.657 に答える
0

いいえ、これはデフォルトではありません。ユーザーを切り替えることができます。ログアウトを実行している間、クレデンシャルを適切にクリアしていないため、このような問題が発生するため、クレデンシャルを完全に削除する必要があります。

Facebookが提供するすべての機能のHackBookコードを確認する必要があります。ここでは、FacebookオブジェクトをSessionStoreクラスに保存し、それに応じて処理する必要があります。

 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);
    }
}
于 2012-07-31T06:48:02.930 に答える