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 !

Tarık Yurtlu
quelle
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.

Nielarshi
quelle
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

Evan Lévesque
quelle
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

kip2
quelle
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.

Robert Pal
quelle
1

Holen Sie sich alle Hash Expo

expo fetch: android: hasches

Joao Paulo Pinheiro
quelle