2016-07-10 14 views
2

Ich integrierte Facebook Login in meine App, und es funktioniert gut. Das Problem ist mit der Abmeldung.Programmatisch klar Facebook SDK 4.0 Sitzung auf Android

Wenn ich die Facebook App auf meinem Gerät öffne, kann ich mich abmelden, damit ich beim nächsten Öffnen mein Passwort abfrage Wenn ich mich mit meinem gewohnten Account einloggen, mit einem anderen Account einloggen oder gar erstellen möchte ein neues Konto Gut, das ist zu erwarten.

Aber das passiert nicht mit meiner App. Ich meine, wenn der Benutzer meine App öffnet, klickt in „Abmelden“ und der Code unten lief ist

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

das nächste Mal, wenn er auf der App ist zurück und klickt er sich anmelden wird mit seinem Konto in direkt eingeloggt sein Er wird nicht mit jedem Account gefragt, den er sich anmelden möchte.

Ich stelle fest, dass ich alle Informationen (Token?) Löschen muss, die gespeichert werden, die in diesem direkten Login verwendet werden. Ist das richtig? Wenn ja, wie kann ich es tun?

Vielen Dank,

Antwort

4

Ich verwende diese Methode. Es ist für SDK 4.6.0, aber ich denke, es sollte das gleiche wie 4.0 sein. Wenn nicht, einfach zu aktualisieren;)

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

Zuhörer:

public interface LogoutFromFacebookListener { 

    void onLoggedOutFromFacebook(); 
} 
+0

Verbessert ein wenig ... jetzt fordert die App den Benutzer auf, die Facebook-Erlaubnis erneut zu bestätigen, aber immer noch mit dem gleichen Benutzer. –

+0

@DaniloSetton Ok :) Wenn dies geschehen ist, akzeptiere bitte meine Antwort, um diese Frage zu schließen. – slanecek

+0

Eigentlich kann ich mich noch nicht mit verschiedenen Benutzern einloggen ... Es leitet mich immer noch zu einem 'direkten Login' um, der einzige Unterschied ist, dass ich die Berechtigungen wieder erteilen muss ... –

1

Es ist wie Nähte, wenn Sie versuchen, Ihren Web-Browser anmelden, Facebook sdk verwendet (Chrom, usw.) in Ihrem Fall. Und wenn Sie LoginManager.getInstance().logOut(); anrufen, melden Sie sich nur von facebook sdk ab, aber Sie bleiben in Ihrem Webbrowser eingeloggt. The Android and iOS SDKs don't currently support re-authentication. Hoffe, dass sie in Zukunft sein werden;)

Verwandte Themen