簡體   English   中英

以編程方式清除Android上的Facebook SDK 4.0會話

[英]Programmatically clear Facebook SDK 4.0 session on Android

我將Facebook登錄集成到我的應用程序中,它運行正常。 問題在於注銷。

當我在設備上打開Facebook應用程序時,我可以執行注銷,以便下次打開它時,它會詢問我如果我想使用我的常用帳戶登錄,使用其他帳戶登錄,甚至創建新帳戶。 好,這是預期的。

但我的應用程序不會發生這種情況。 我的意思是,如果用戶打開我的應用程序,請單擊“注銷”並運行以下代碼

// Initialize Facebook SDK on the beginning.
FacebookSdk.sdkInitialize(this.getApplicationContext());
...
// Logout on user choice.
LoginManager.getInstance().logOut();

下次他回到應用程序並點擊登錄時,他將直接使用他的帳戶登錄,不會詢問他想要登錄的每個帳戶。

我想我需要清除所有保存的信息(令牌?),這些信息被用於直接登錄。 它是否正確? 如果是,我該怎么辦?

謝謝,

我正在使用這種方法。 這是SDK 4.6.0,但我想它應該與4.0相同。 如果沒有,只需升級;)

public void logoutFromFacebook(final LogoutFacebookListener listener) {

        if (AccessToken.getCurrentAccessToken() == null) {
            // already logged out
            listener.onLoggedOutFromFacebook();
            return;
        }

        new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest
                .Callback() {

            @Override
            public void onCompleted(GraphResponse graphResponse) {

                LoginManager.getInstance().logOut();
                listener.onLoggedOutFromFacebook();
            }
        }).executeAsync();
    }

監聽器:

public interface LogoutFromFacebookListener {

    void onLoggedOutFromFacebook();
}

它就像你試圖登錄時一樣,facebook sdk在你的情況下使用你的網絡瀏覽器(chrome等)。 當你調用LoginManager.getInstance().logOut(); 你只是從facebook sdk注銷,但你仍然在你的網絡瀏覽器中登錄。 Android和iOS SDK目前不支持重新身份驗證。 希望他們將來會出現;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM