it-swarm.com.de

Der Facebook-Schlüsselhash stimmt mit keinen gespeicherten Schlüsselhashes überein

Ich habe wirklich Probleme mit dem Facebook-Hash-Key ... Ich habe ihn in meiner Eclipse generiert .. Beweis:  

Dann bin ich zu https://developers.facebook.com/ gegangen und habe eine neue App registriert .    

Und zum Schluss habe ich meinen Hashschlüssel bei den Einstellungen von Facebook-Entwicklern eingestellt:  

Aber was soll ich tun? Ich bekomme immer das gleiche Fehlerprotokoll: "Schlüsselhash B5dWUEYfZJL/........ jyA = stimmt mit keinen gespeicherten Schlüsselhashes überein"

Weiß jemand, was ich falsch gemacht habe oder wie ich dieses Problem beheben kann? Wenn ich die ID und den Namen aus dem HelloFacebookSample in meiner eigenen App verwendet, funktioniert alles .. So hat es mit dem Schlüssel Hash, ID oder zu tun Name, den ich am wahrscheinlichsten irgendwo gesetzt habe ..

Vielen Dank, Yenthe

44
Yenthe

Nach stundenlangem Ausprobieren habe ich endlich eine Lösung gefunden.

  1. Löschen Sie alle Apps auf der Website von Facebook (http://developers.facebook.com.
  2. Löschen Sie die Datei debug.keystore unter C:\Users\yourUserName\.Android
  3. Generieren Sie einen neuen Schlüssel (indem Sie Ihre App erneut ausführen)
  4. Erstellen Sie eine neue App auf Developers.facebook.com und fügen Sie den neuen Hash-Schlüssel hinzu
  5. Führen Sie Ihre App erneut aus
  6. Succes!
40
Yenthe

Wenn Ihr Login ohne die Installation der Facebook-App funktioniert und nicht funktioniert, wenn die Facebook-App aufgrund des Fehlers "Hash-Schlüssel stimmt nicht" installiert wurde, führen Sie die folgenden Schritte aus 

1) Starten Sie Ihre App und melden Sie sich mit Facebook an. Ein Dialog öffnet sich und sagt Ihnen: "Der Schlüssel wurde nicht in der Facebook-Entwicklerkonsole gefunden und zeigt auch den Hash-Schlüssel an.

2) Notieren Sie diese Hash-Taste.

3) Legen Sie es in Ihre Facebook-Entwicklerkonsole ein, wo Sie zuerst Ihren API-Schlüssel generiert haben, und entfernen Sie den Hash-Schlüssel mit "Neu" und "Speichern". Jetzt bist du fertig. Jeder, der Ihre App herunterlädt und mit einem früher verwendeten Keystore veröffentlicht wurde, kann sich bei Facebook anmelden.

45
Narender Gusain

Ich bin auf ein ähnliches Problem gestoßen. Die Lösung ist überraschend einfach.

Die Fehlermeldung sieht so aus:

07-05 ...... Invalid key hash. The key hash sL1***************VY= does not match any stored key hashes. Configure your app key hashes at http://developers.facebook.com/apps/150*******778
07-05 ......     at com.facebook.login.LoginManager.onActivityResult(LoginManager.Java:191)

Melden Sie sich einfach bei https://developers.facebook.com an, wählen Sie die Registerkarte "Einstellungen" und fügen Sie den Schlüsselhash "sL1 *************** VY =" hinzu die Liste der gespeicherten Schlüsselhashes im Android-Bedienfeld.

27
Darsen Lu

Während der Entwicklung stand ich vor demselben Problem und musste den Hash-Schlüssel zum Testen des Austauschs auf Facebook erhalten. Bei der Lösung dieses Problems ging ich einige Probleme durch

1- Der Befehl, den facebook zur Verfügung stellt, um den Hash-Schlüssel mit dem Befehl openSSL zu erhalten, gab mir nicht den richtigen Hash, den ich durch Extrahieren der Signatur aus den Paketinformationen mit dem Code . Erhalten hatte. Der Hash auf dem zweiten Weg war richtig.

2- Aus irgendeinem Grund, in der Dokumentation heißt es, Sie sollten die Entwicklereinstellungen aufrufen und dort den Hash-Schlüssel für 'Sample App' hinzufügen. Ich dachte, jeder Hash-Schlüssel für einen Entwickler sollte dort sein, und das war mein Fehler, jede App hat es eigenes Hash-Feld zum Hinzufügen, gehen Sie zu Ihrer App/Einstellungen/Android.

enter image description here

nun, das war es .. und für die Datensätze, die ich verwendet habe, openssl-0.9.8k_X64 unter Windows 7 x64, und es erzeugt nur einen falschen Hash. Ich weiß nicht warum

Ich habe diesen Code verwendet, um den Hash zu erhalten:

private void printKeyHash() {
    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo("YOUR PACKAGE NAME", PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {
        Log.e("KeyHash:", e.toString());
    } catch (NoSuchAlgorithmException e) {
        Log.e("KeyHash:", e.toString());
    }
}

aber seien Sie vorsichtig, dass dies möglicherweise nicht in Protokollen den korrekten Keyhash druckt, zumindest auf meinem Gerät und meiner Maschine. Beim Debuggen wird in einer Uhr der richtige Hash direkt vor dem Drucken der Protokolle angezeigt. In Protokollen werden jedoch ein anderer Hash und ein anderes Protokoll angezeigt der erste war der richtige.

sie können jedoch auch einen Befehl oder Eclipse verwenden, um die hexadezimale SHA - Sequenz für Ihren Schlüssel anzuzeigen und online in die Basis 64 zu konvertieren. Es gibt Websites, die möglicherweise helfen http://tomeko.net/online_tools /hex_to_base64.php?lang=de

Viel Glück 

22

Das Hinzufügen von SHA1-Schlüsseln aus Eclipse/keytool hat mir nur beim Erstellen der App auf FB geholfen. Nach dem Neuaufbau würde ich immer den OP-Fehler erhalten.

Was mein Problem gelöst hat, war das Hinzufügen des Schlüssels in der Fehlermeldung zu den Facebook-Dashboard-Einstellungen.

16
Peter File

Dies ist ein Fall, der möglicherweise aufgetreten ist und was meinen Fehler behoben hat:

Im https://developers.facebook.com/quickstarts nach dem Ausführen 

OSX/Linux:

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

Windows:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.Android\debug.keystore | openssl sha1 -binary | openssl base64

Wenn Enter keystore password: gefragt wird Sie haben versehentlich ein falsches Passwort eingegeben, lautet das Standardpasswort " Android ". Wenn Sie ein anderes Passwort eingeben, erhalten Sie einen anderen/falschen Hash-Schlüssel. Fügen Sie den korrekten Hash-Schlüssel in das Feld Key Hashes auf Ihrer App-Seite ein.

Dies hat mein Problem gelöst. Ich hoffe, dies hilft demjenigen, der diesen bestimmten Fehler begangen hat

11
Kewal Shah

Ich habe dieses Problem jetzt seit zwei Monaten. Meine wichtigsten Hashes waren bis zu 9. .. Heute fand ich endlich die einfache Lösung:

SCHRITT 1:

Installieren Sie die Facebook-SDK, die Sie von der Facebook-Entwicklerseite auf Ihr Telefon heruntergeladen haben. Installieren Sie nicht die normale Facebook-App. Stellen Sie sicher, dass Sie sich bei Facebook anmelden können. Dann melde dich ab.

SCHRITT 2: 

Exportieren Sie Ihre App mit Ihrem endgültigen Freigabeschlüssel als apk, genau wie beim Hochladen in den Playstore. 

SCHRITT 3:

Legen Sie die Apk-Datei per USB-Kabel oder USB-Stick auf Ihr Handy. 

SCHRITT 4: 

Installieren Sie Ihre App mithilfe eines Dateimanagers: Zum Beispiel https://play.google.com/store/apps/details?id=com.rhmsoft.fm

SCHRITT 5:

Starten Sie Ihre App und versuchen Sie, sich mit Facebook anzumelden. Ein Dialog öffnet sich und sagt Ihnen: "Der Schlüssel wurde nicht in der Facebook-Entwicklerkonsole gefunden

SCHRITT 6:

Schreiben Sie den Schlüssel auf.

SCHRITT 7:

Legen Sie es in Ihre Facebook-Entwicklerkonsole ein und speichern Sie. Nun sind Sie fertig .. Jeder, der Ihre App herunterlädt und mit einem früher verwendeten Keystore veröffentlicht wurde, kann sich bei Facebook anmelden.

Genießen

7
Sakramento

Es sieht verrückt aus, aber es funktioniert

Wirklich wegen Ihrer privaten Facebook-Konto bekam diese App und Hash-Schlüssel dieses Kontos ist nicht vergleichbar

Aber Sie sollten sich diesem Fehler nicht mit echten Benutzern stellen. Aber ich bin mir nicht sicher

Möglicherweise folgen Sie den nächsten Schritt: 

  1. Gehen Sie zu Ihrem privaten Facebook-Konto, mit dem Sie sich anmelden möchten
  2. Klicken Sie dann auf Mehr im App-Verzeichnis

 enter image description here

  1. Klicken Sie auf Einstellungen

 enter image description here

Klicken Sie dann auf Kreuz

 enter image description here

Und jetzt können Sie sich mit Facebook einloggen. Aber wenn Sie sich das nächste Mal abmelden und dann erneut versuchen, sich erneut anzumelden, haben Sie das gleiche Problem ...

Es ist auch komisch ...

Aber ich glaube nicht, dass Facebook nichts davon weiß ... 

  1. Überprüfen Sie Ihren Key-Hashwert. 
  2. Deinstallieren Sie die Facebook-Anwendung von Ihrem Telefon. 
  3. Versuchen Sie es dann erneut mit SDK. 

Das hat mein Problem gelöst.

5
Rezaul Karim

Ich habe das gleiche Problem. Ich habe festgestellt, dass ich einen falschen Hashschlüssel verwendet habe. keytool hat den falschen hashkey gedruckt, da ich den Befehl mit falschem Alias ​​ausführte.
Bitte überprüfen Sie Ihren Befehl erneut. Dadurch wird Ihr Problem behoben

keytool -exportcert -alias "test fb sdk" -storepass Android -keypass Android -keystore "C:\keystore.keystore" | openssl sha1 -binary | openssl base64
3
Leo Nguyen

Die Verwendung des Debug-Schlüsselspeichers, einschließlich Android debug.keystore im .Android-Ordner, erzeugte ein seltsames Problem. Der Login mit dem Facebook-Login-Button in der Android-App würde zum ersten Mal wie gewünscht passieren. Wenn ich mich jedoch abgemeldet habe und versucht habe, sich anzumelden, wird ein Fehler ausgegeben: Diese App hat keine Android-Schlüsselhashes konfiguriert. Bitte gehen Sie zu http: // .... 

Erstellen eines Keystores mit dem Befehl keytool (keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -sigalg SHA1withRSA -keysize 2048 -validity 10000) und Einfügen dieses Keystores in den obersten übergeordneten Ordner meiner Projekte Der folgende Eintrag in der Datei build.gradle des Projekts hat das Problem gelöst:

 signingConfigs {
        release {
            storeFile file("my-release-key.keystore")
            storePassword "passpass"
            keyAlias "alias_name"
            keyPassword "passpass"
        }    }

Bitte beachten Sie, dass Sie in onCreate () Ihrer Android-Aktivität immer die folgende Methode verwenden, um den Hashwert des Schlüssels abzurufen (um sich auf der Website developer.facebook.com Ihrer App zu registrieren), anstatt die Befehlszeile zum Generieren des Hashwerts als Befehlszeile in zu verwenden In einigen Fällen kann ein falscher Schlüssel-Hash ausgegeben werden:

    public  void showHashKey(Context context) {
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo("com.superreceptionist",
                    PackageManager.GET_SIGNATURES);
            for (Android.content.pm.Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());

                 String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
                Log.e("KeyHash:", sign);
                //  Toast.makeText(getApplicationContext(),sign,     Toast.LENGTH_LONG).show();
            }
            Log.d("KeyHash:", "****------------***");
        } catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
e.printStackTrace();
        }
    }
1
Sandeep.R

Beachten Sie beim Generieren des Release-Hash-Schlüssels Folgendes

Wenn Sie den Hash-Schlüssel für die Produktion generieren, müssen Sie openssl-0.9.8e_X64.Zip unter Windows verwenden. Sie können openssl-0.9.8k_X64.Zip nicht verwenden

Die Versionen produzieren unterschiedliche Hash-Schlüssel, aus irgendeinem Grund funktioniert 9.8k nicht richtig ... 9.8e schon.

OR

Verwenden Sie diese unten fließen

So habe ich dieses Problem gelöst. Laden Sie Ihre APK in den Ordner Java jdk\bin auf Ihren PC. In meinem Fall C:\Programme\Java\jdk1.7.0_121\bin gehen Sie zu Java jdk\bin ordner und starte cmd dann kopiere den folgenden befehl in deine cmd

keytool -list -printcert -jarfile yourapkname.apk

Kopieren Sie den SHA1-Wert wie folgt auf Ihre Zwischenablage: A1: EA: A3: 5C: 5C: 68: FB: FA: 0A: 6B: E5: 5A: 72: 64: DD: 26: 8D: 44: 84 und Öffnen Sie http://tomeko.net/online_tools/hex_to_base64.php , um Ihren SHA1-Wert in base64 zu konvertieren.

1
thamim

Ich habe ein ähnliches Problem. Nachdem Sie meine App bei Google PlayStore signiert und veröffentlicht haben, scheint sich der Hash geändert zu haben. Ich habe den neuen Hash (wie erwähnt) zu Facebook hinzugefügt und den Schlüssel-Hashes in meiner App unter http://developers.facebook.com/app//settings hinzugefügt. Jetzt funktioniert es wieder.

1
Ramon

So habe ich dieses Problem gelöst

  1. in Android Studio im rechten Fenster Gradle>App>Android>signingReport copy SHA1
  2. und öffne http://tomeko.net/online_tools/hex_to_base64.php , um deinen SHA1-Wert in base64 zu konvertieren.

Dazu benötigt Facebook den generierten Hash "********************** =" und kopiert den Key-Hash in die Facebook-App.

1
Govan

Mein Problem ist möglicherweise darauf zurückzuführen, dass der Hash vom openssl selbst falsch generiert wurde, wenn jemand mit einem ähnlichen Problem konfrontiert ist, wie es in der Facebook Android Anleitung selbst) beschrieben ist.

Ein Weg, um damit umzugehen, ist:

  1. Holen Sie sich Ihre sha1 mit diesem Tool:

keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v

  1. konvertiere es mit diesem Tool nach base64

http://tomeko.net/online_tools/hex_to_base64.php

gutschrift:

https://github.com/facebook/react-native-fbsdk/issues/424#issuecomment-469047955

0
Eimihar

Überprüfen Sie Ihre google-services.json. Vielleicht ist es anders. Laden Sie Ihren neuesten google-services.json herunter und führen Sie die App aus. Ich hoffe es hilft.

0
Shubham Gupta

"Enabled Single Sign On für Ihre App" funktioniert deshalb nur einmal. Bitte gehen Sie auf developer.facebook und überprüfen Sie die Einstellungen von settings.it für mich

0
kshitij

Was ich fand, war, dass mein SHA-1, mit dem die App zum Hochladen in den Google Playstore signiert wurde, nicht korrekt war. Ich habe festgestellt, dass meine App vom Google Play Store mit einem anderen Token signiert wurde. Ich bin diesen Schritten gefolgt:

  1. Gehen Sie zur Google Play Console
  2. Klicken Sie auf Release Management
  3. Klicken Sie auf App Signing
  4. Konvertieren Sie das App-Signing-Zertifikat SHA-1 in Base64 (dies unterscheidet sich von Ihrem aktuellen Upload-Zertifikat).
  5. Geben Sie Base64-konvertiertes SHA-1 in meine Facebook Developer-Dashboard-Einstellungen ein

    Ich kann mich jetzt in meine App einloggen, wenn Facebook auf und Android Gerät) heruntergeladen wird.

0
tnaught

Möglicherweise verwenden Sie ein falsches Kennwort. Das Standardkennwort für den Debug-Keystore ist Android

0