Diese App hat keine Android Key Hashes konfiguriert. - Loggen Sie sich mit dem Facebook SDK ein


81

Ich habe ein Problem mit der Anmeldung mit Facebook-Konto in meiner Anwendung. Ich habe auf Facebook Doc gelesen. Und ich habe alle Schritte als Facebook Doc gemacht.

Zuerst beim Login mit Facebook-Account in der App - ERFOLGREICH ! und dann in der Anwendung abmelden. Ich möchte mich erneut mit meinem Facebook-Konto anmelden. Aber funktioniert nicht !! Und ich habe diese Ausnahme gemacht! Bitte hilf mir !

Ausnahme: Für diese App sind keine Android-Schlüssel-Hashes konfiguriert. Konfigurieren Sie Ihre App-Schlüssel-Hashes unter http: developer.facebook.com/apps/ "APP ID".

Endlich; Ich habe einen Teil des Codes für HashKey Genarate verwendet

 try {
        PackageInfo info =     getPackageManager().getPackageInfo("MY PACKAGE NAME",     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("MY KEY HASH:", sign);
          //  Toast.makeText(getApplicationContext(),sign,     Toast.LENGTH_LONG).show();
        }
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}

Ich habe mein Problem gelöst. Ich hätte auf Facebook einstellen sollen. Schritte :

  1. Gehen Sie zur Facebook-Entwicklerseite: https://developers.facebook.com/
  2. Öffnen Sie die App-Registerkarten und klicken Sie dann auf die Einstellung

  3. Fügen Sie den generierten Hashkey in das Feld von HashKey ein. = Wenn Sie ihn noch nicht haben, holen Sie sich Ihren Schlüssel-Hash-Teil des Codes

  4. Und dann lautet Single Sign On "Ja": Single Sign On: Aktivieren Sie diese Einstellung.

Ich wollte meine Entschlossenheit teilen. Vielleicht braucht jemand diese Lösung. Viel Glück !


1
Danke - Sie haben mir geholfen und ich hatte das gleiche Problem +1
— Simon

Facebook bietet jetzt eine sehr gute Schnellstart-Erklärung zum Generieren von Hashes, nachdem Sie auf die Schaltfläche "Einstellungen" geklickt und eine neue Plattform hinzugefügt haben: Für Mac: keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64Für Windows:keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
— FilipR

Wie haben Sie dieses Problem behoben?
— andrei

2
Sie sollten Ihre Lösung stattdessen als Antwort veröffentlichen und als Antwort markieren. Dadurch wird diese Frage nicht mehr als unbeantwortet angezeigt.
— Sufian

Antworten:


15

Sie müssen Ihren Hash-Schlüssel nicht generieren. Wenn Sie versuchen, über Ihre App auf Facebook zuzugreifen, wird eine Fehlermeldung angezeigt, die besagt, dass "[Hash Key]" nicht registriert oder konfiguriert ist. Kopieren Sie einfach diesen Schlüssel und gehen Sie zu developer.facebook.com, wo Sie Ihre App für die Facebook-Überprüfung registriert und unter Schlüssel-Hashes eingefügt haben.

Denken Sie daran: Für jedes Gerät kann der Hash-Schlüssel unterschiedlich sein. Sie müssen es frisch einschließen.

Standardmäßig sollte dieser Schlüssel Folgendes tun: 2jmj7l5rSw0yVb / vlWAYkK / YBwk =

Außerdem müssen Sie Facebook vor allem Ihre App-Details sowie Screenshots darüber, wo Sie Facebook-Funktionen verwenden, und Gründe für Ihre Verwendung bereitstellen. Sie müssen das überprüfen.


Danke Nielarshi für deine Antwort. Aber ich habe einen anderen Weg gefunden.
— Tarık Yurtlu

2
@ TarıkYurtlu Was ist das? Ich habe den Hash-Schlüssel registriert, aber er hat nicht funktioniert. Wenn ich die Facebook App deinstalliere, funktioniert es. Sollte ich einen Antrag auf Veröffentlichung registrieren oder können wir dies für die Entwicklung tun?
— Amt87

4
Alter Thread, aber ... Ist der Schlüssel nicht für jede "signierte apk-Version" und nicht für jedes Gerät unterschiedlich? Wenn es für jedes Gerät wäre, könnte es sicherlich niemand verwenden. Hinweis für andere: Der Hash-Schlüssel zwischen der signierten Version, die Sie hochladen, und der Version, die Sie beim Entwickeln verwenden, ist unterschiedlich. Obwohl Sie in Facebook mehrere Hash-Schlüssel hinzufügen können, sollte dies kein Problem sein. Sobald Sie einen anderen Signaturschlüssel verwenden, ändert sich der Hash.
— Renevdkooi

10

Um einen Hash Ihres Release-Schlüssels zu generieren, führen Sie den folgenden Befehl unter Mac oder Windows aus und ersetzen Sie Ihren Release-Schlüssel-Alias ​​und den Pfad zu Ihrem Keystore. Führen Sie unter OS X Folgendes aus:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

Verwenden Sie unter Windows:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64


Ref: https://developers.facebook.com/docs/android/getting-started/#create_hash


2

Wenn Sie Ihre App nicht veröffentlicht haben und nur den Debug-Versions-Hash verwenden möchten, können Sie ihn mit diesem Befehl aus Ihrem Debug-Keystore abrufen:

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

Mehr zu diesem verwandten SO-Beitrag


1

Es gibt eine einfache Möglichkeit, Ihren Hash-Schlüssel zu erhalten.

Fügen Sie einfach in Ihre .kt-Hauptdatei in der onCreate-Methode die folgenden Zeilen ein:

FacebookSdk.sdkInitialize(this)
println("Facebook hash key: ${FacebookSdk.getApplicationSignature(this)}")

Kopieren Sie dann das Ergebnis auf die Website der Facebook-Entwickler. Manchmal hat das Ergebnis nicht das gleiche Symbol (=) am Ende der generierten Zeichenfolge. Wenn ja, fügen Sie es manuell hinzu.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.