Frage Die App ist für die Facebook-Anmeldung falsch konfiguriert: Android Facebook-Integrationsproblem


Ich habe meine Bewerbung bei Facebook integriert und nutze dafür Facebook Grafik-API. Ich erhalte Profil- und Freundeinformationen. Es funktioniert gut auf meinem Gerät, das hat Android 2.3 (Lebkuchen), aber vor kurzem hat mein Kunde ein Problem, während er versucht, sich mit Facebook über meine App zu verbinden. Er hat Android 4.0 (Ice Cream Sandwich) auf seinem Gerät. Wenn er auf einen Button in der App klickt, der ihn zum Facebook-Login-Bildschirm führt, erhält er nach dem Login eine Nachricht:

Meine App ist für die Facebook-Anmeldung falsch konfiguriert. Drücken Sie OK, um zur Anwendung zurückzukehren, ohne eine Verbindung zu Facebook herzustellen.

Facebook error message

Ich verstehe nicht, was das Problem ist, ob es mit Android-Version oder was ist.

Wie kann ich dieses Problem beheben?


76
2017-09-12 06:46


Ursprung


Antworten:


Ich arbeite bei Facebook und das ist ein wichtiges Thema, das angesprochen werden muss. Die andere Antwort für diese Frage deutet darauf hin, dass das Deaktivieren von SSO sehr schlecht ist öffnet Ihre App für schädliche Apps, die die Facebook-Anmeldeinformationen Ihres Nutzers stehlen können.

Der Hack startet einen WebView-Dialog ohne SSO auf Facebook, und der Benutzer muss seine Anmeldedaten in diesen Dialog eingeben. Bösartige Apps können diese Informationen dann einfach stehlen. Es wird immer empfohlen, Facebook SSO korrekt zu implementieren, um sicherzustellen, dass Ihre App sicher ist und die sensiblen Daten Ihres Benutzers schützt.

Vor dem Hinzufügen dieser Fehlermeldung wird das Dialogfeld automatisch ohne Warnung geschlossen und schlägt automatisch fehl. Wir haben diese Fehlermeldung hinzugefügt, um anzuzeigen, dass ein Problem mit Ihrer App-Konfiguration in Ihrem Facebook App-Dashboard vorliegt. Für Android, wenn Sie Ihre überprüfen LogCatSie werden feststellen, dass nach dem Drücken von "OK" eine Fehlermeldung angezeigt werden sollte, die eine technische Beschreibung der Ursache für die fehlgeschlagene Authentifizierung enthält.

Wenn Sie beispielsweise unser Hackbook-Beispiel verwenden und Ihre eigene APP_ID nicht in der Quelle angeben und Ihren Hash-Schlüssel nicht zum Dashboard hinzugefügt haben, wird dieser Fehler in LogCat angezeigt, nachdem Sie im nativen SSO-Dialogfeld auf "OK" geklickt haben Util.ENABLE_LOG ist auf wahr gesetzt):

D / Facebook-authorize (24739): Anmeldung fehlgeschlagen: invalid_key: Android Key stimmt nicht überein. Ihr Schlüssel "uk3udeH7vrOGNFH2FJjdJbdWJWI" stimmt nicht mit den in Ihren Anwendungseinstellungen angegebenen zulässigen Schlüsseln überein. Überprüfen Sie Ihre Anwendungseinstellungen unter http://www.facebook.com/developers

Wir haben die visuelle Fehlermeldung hinzugefügt, um Ihnen zu helfen. Dies bricht in der Theorie frühere Implementierungen nicht wenn es zu Beginn korrekt implementiert wurde. Wenn Sie diese Fehlermeldung sehen, bedeutet das, dass Sie Ihre App-Einstellungen nicht korrekt konfiguriert haben Ihr Dashboard.
Überprüfen Sie Ihren Android-Klassen- / Paketnamen, Android-Hash-Schlüssel usw. Sie werden diese Nachricht nicht sehen, wenn Sie alles richtig gemacht haben.

Zusammenfassend, erhalten Sie diese Fehlermeldung, weil ein Problem mit Ihrer App-Konfiguration vorliegt, z. B. ein Konflikt zwischen den Android-Hash-Schlüsseln in Ihrem Dashboard. Bevor Facebook diese Fehlermeldung hinzugefügt hat, wurde der Dialog gestartet, automatisch geschlossen und fehlgeschlagen. Um dies zu beheben, überprüfen Sie Ihr LogCat auf Fehlermeldungen und stellen Sie sicher, dass alles korrekt implementiert wurde. Sie können weiterlesen unsere Dokumentation um sicherzustellen, dass alles korrekt ist. Verwenden Sie nicht die akzeptierte Antwort für diese Frage.

Sie können auch dem folgen externer Fehlerbericht dass ein Facebook-Entwickler für weitere Updates gemeldet hat.


90
2017-09-15 02:01



Versuchen Sie es so einzustellen:

Erster Download OpenSSL (Wenn Sie eine 64-Bit-Maschine haben, müssen Sie sie herunterladen openssl-0.9.8e X64, nicht die neueste Version, openssl-0.9.8k X64, weil die Ausgabe nicht gültig ist). Extrahiere deine Dateien, erstelle den Ordner opensslB. in C: / und kopiere Dateien dort.

Finde deinen Weg zum Keytoo. Meine ist C: \ Programme \ Java \ jdk1.7.0_05 \ bin.

Finde deinen Weg zu debug.keystore. YSie können sehen, was Pfad ist, wenn Sie in Eclipse öffnen, Menü Fenster -> Einstellungen -> Android -> Bauen, und du wirst sehen Standard-Debug-Keystore:- und der Weg.

Finde deinen Weg zu openssl. Meine ist C: \ openssl8e \ bin /.

Öffne cmd und tippe:

"C: \ Programme \ Java \ jdk1.7.0_05 \ bin \ keytool" -exportcert -alias androiddebugkey -keystore "C: \ Benutzer \ Benutzer.android \ debug.keystore" | "C: \ openssl8e \ bin \ openssl" sha1 -binär | "C: \ openssl8e \ bin \ openssl" base64

Aund dann drücken Eingeben.

Passwort eingeben: android

Sie erhalten Ihren Hash-Schlüssel für debug.keystore.

Wenn Sie eine Signatur exportieren APKund Sie erstellen einen Keystore für die Anwendung, ersetzen Sie einfach in cmd debugkeystore alias mit Ihrem Alias ​​für die App, den Keystore - Pfad mit dem Pfad zu Ihrem neu erstellten Keystore für die Anwendung und geben Sie das Passwort für Ihre app.keystoreund Sie erhalten einen neuen Hash-Schlüssel für Ihre signierte App.


15
2017-09-23 14:24



Die Antwort von Jesse Chen ist in Ordnung. Facebooks SDK funktioniert gut, mach es nicht kaputt.

Ich habe dieses Problem erneut festgestellt und festgestellt, dass die Facebook SDK-Dokumentation korrigiert wurde und jetzt sehr gut ist. Jetzt wird erläutert, wie man Hash-Keys debuggen und freigeben kann; mach einfach so, wie es heißt.

Unten ist meine alte Geschichte. Es fehlt Ihnen, dass Sie zwei Hash-Schlüssel festlegen können, einen für das Debuggen und einen für die signierte, freigegebene Anwendung für den alten Spielladen.


Ich habe dieses Problem herausgefunden war in meinem Fall in der Facebook SDK Dokumentation. Es führte uns dazu, den Debug-Key-Hash zu verwenden und ihn in die App-Konfiguration von Facebook einzufügen. Hash wird so geführt:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Dies funktioniert gut, wenn Sie eine Anwendung ausführen oder von einer Anwendung ausführen Finsternis.

Wenn Sie Ihre Anwendung jedoch in Andoid Play veröffentlichen, müssen Sie Ihren eigenen Publisher-Schlüssel verwenden, um die signierte .apk-Datei zu exportieren. Mit dieser .apk ist der Hash in der Facebook App-Konsole nicht mehr gültig! Sie müssen einen Hash für den Entwicklerschlüssel wie folgt erhalten:

keytool -exportcert -alias <developer alias> -keystore ~/.android/<developer keystore> | openssl sha1 -binary | openssl base64

Und legen Sie es in den Android Key Hash in der Facebook App-Konsole für Ihre veröffentlichte Anwendung. Danach funktioniert SSO erneut für Ihre signierte .apk-Datei.


12
2017-09-24 20:09



Von dem, was ich sammeln konnte, ist es ein Facebook-Problem und wurde gemeldet. Aber das Problem besteht weiter.

Ein Weg um dies (getestet auf 2.3.3) ist auf das Facebook SDK hacken, für die 2 suchen autorisieren Methoden und ändern Sie die DEFAULT_AUTH_ACTIVITY_CODE zu FORCE_DIALOG_AUTH. Dadurch wird die Funktion für einmaliges Anmelden deaktiviert.

Wenn du es bevorzugst

public void authorize(Activity activity, String[] permissions,
            int activityCode, final DialogListener listener) 

und deaktiviere die startSingleSignOn Teil. Es ist besser, dies nicht zu tun, da Facebook das Problem lösen wird und Sie nur die alte Konstante zurückstellen müssen.

BEARBEITEN

Diese Lösung wirft Sicherheitsprobleme auf. Überprüfen Sie Jesse Chen Antwort.


8
2017-09-12 16:34



Ich hatte das gleiche Problem, nachdem ich 24 Stunden und viele Suchen verbracht habe, benutzen wir diese Methode, um mein Problem zu lösen.

  1. Überprüfen Sie die aktuelle Bundle-ID Ihres Xcode-Projekts zum Beispiel: com.IhrFirmenname.IhrAppenname

  2. Verwende den gleichen com.yourcompanyname.yourappname bundle identifier zum Erstellen einer App in Facebook siehe Anhang.

enter image description here


5
2017-12-21 05:02



Ich hatte dieses Problem vor ein paar Minuten auf 4.0.4 und es scheint sich selbst gelöst zu haben.


3
2017-09-12 13:03



Obwohl spät, immer noch nützlich: *Hier ist die Corerct-Methode (für Debug-Schlüssel, ändern Sie sich für Release):*

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\<User>\.android\debug.keystore" > <Drive letter>:\debug.txt
openssl sha1 -binary "<Drive letter>:\debug.txt" > "<Drive letter>:\debug_sha.txt"
openssl base64 -in "<Drive letter>:\debug_sha.txt" > "<Drive letter>:\debug_base64.txt"

Der Hash befindet sich in der zuletzt erzeugten Datei: debug_base64.txt .... öffne ihn und kopiere den Hash.

Denken Sie daran, "" und Ihren Benutzernamen und den Laufwerksbuchstaben Ihrer Wahl zu ersetzen


3
2018-01-24 04:05



Wenn Sie den Schlüssel-Hash erstellen, erhalten Sie am Ende möglicherweise etwas, das am Ende das Gleichheitszeichen "=" hat ga0RGNYHvNM5d0SLGQfpQWAPGJ8 =. Während Facebook das Gleichheitszeichen gerne als Teil des Schlüssel-Hash akzeptiert, müssen Sie es entfernen, damit es funktioniert.

Überprüfen Sie außerdem die akzeptierte Antwort auf Android Facebook SDK 3.0 gibt "remote_app_id stimmt nicht mit gespeicherter ID überein" beim Anmelden: Wenn Sie den Schlüssel-Hash für den Debug-Schlüsselspeicher erhalten, verwenden Sie das Kennwort "android". Sonst ist der Schlüssel-Hash falsch und Sie erhalten den Fehler, der in der Frage angegeben ist (seien Sie nett und stimmen Sie die Antwort dort ab, wenn es Ihnen geholfen hat.)


2
2017-12-27 10:48