Ich arbeite an einer Android-App, in die ich eine Facebook-Posting-Funktion integrieren möchte. Ich habe das Facebook-Android SDK heruntergeladen und dort die Datei readme.md (Textdatei) abgerufen, in der der Schlüssel-Hash für Android generiert wird. Wie generiere ich es?
229
Antworten:
Hier sind die Schritte-
Laden Sie openssl vom Google-Code herunter (Wenn Sie einen 64-Bit-Computer haben, müssen Sie openssl-0.9.8e X64 herunterladen, nicht die neueste Version).
Extrahieren Sie es. Erstellen Sie einen Ordner - OpenSSL in C: / und kopieren Sie den extrahierten Code hier.
Erkennen des Dateipfads debug.keystore. Wenn Sie nicht gefunden haben, führen Sie eine Suche in C: / durch und verwenden Sie im nächsten Schritt den Pfad im Befehl.
Ermitteln Sie den Pfad keytool.exe, gehen Sie zu dieser dir / in-Eingabeaufforderung und führen Sie diesen Befehl in einer Zeile aus.
Weitere Informationen finden Sie hier
quelle
$
.[EDIT 2020] -> Jetzt kann ich die Antwort hier nur empfehlen , viel einfacher mit Android Studio, schneller und ohne Code schreiben zu müssen - der folgende war in den Tagen der Sonnenfinsternis zurück :) -.
Sie können diesen Code in jeder Aktivität verwenden. Der Hash-Schlüssel wird im Logcat protokolliert, der der Debug-Schlüssel ist. Dies ist einfach und eine Erleichterung als die Verwendung von SSL.
Sie können den Code löschen, nachdem Sie den Schlüssel kennen;)
quelle
keytool
Befehl bekam ich die falschen Schlüssel-Hashes (ich habe keine Ahnung warum, entschied, dass es mir nicht wichtig genug war, Nachforschungen anzustellen). Dies funktionierte und dauerte buchstäblich 5 Minuten, um die Debug- und Release-Key-Hashes zu erhalten. +1Ich habe ein kleines Tool für Windows und Mac OS X erstellt. Geben Sie einfach die Key-Store-Datei ein und holen Sie sich den Hash-Schlüssel.
Wenn Sie die Standarddatei debug.keystore verwenden möchten, verwenden Sie den Standardalias und das Standardkennwort. Verwenden Sie andernfalls Ihre eigene Keystore-Datei und Werte.
Probieren Sie es aus, laden Sie die Windows-Version oder die Mac OS X-Version herunter (Dev-Host ist manchmal nicht verfügbar ... Wenn der Link unterbrochen ist, senden Sie mir eine PM und ich werde das Problem beheben).
Ich hoffe das hilft euch ...
31. Dezember 2014 - BEARBEITEN: Host auf AFH geändert. Bitte lassen Sie mich wissen, wenn die Links defekt sind
21. November 2013 - BEARBEITEN:
Auf Wunsch der Benutzer habe ich einen Standardspeicherort für den Schlüsselspeicher und eine Schaltfläche SPENDEN hinzugefügt. Fühlen Sie sich frei, es zu benutzen, wenn ich Ihnen geholfen habe. :) :)
quelle
keytool
Befehlszeile? Soll es nicht zu identischen Ergebnissen führen, wenn es auf dieselbe Keystore-Datei angewendet wird?Die Anweisungen im Android-Tutorial von Facebook funktionieren unter Windows nicht gut . Ihr Beispiel zeigt, wie die Keytool-Ausgabe an openssl weitergeleitet wird. Wenn Sie dies jedoch unter Windows versuchen, ist die Ausgabe aus irgendeinem Grund nicht gültig. Ich stellte fest, dass ich Zwischendateien verwenden musste, damit es richtig funktionierte. Hier sind die Schritte, die für mich funktioniert haben:
Laden Sie zunächst openssl für Windows von Google herunter .
Nach dem Ausführen dieser Befehle wird der gültige Hash in der Datei base64.txt gespeichert. Kopieren Sie diese und fügen Sie sie in Ihre App-Einstellungen auf Facebook ein.
quelle
Dies ist, was auf der offiziellen Seite von Facebook gegeben wird :
Lassen Sie mich diesen Befehl in Fragmente zerlegen.
Suchen Sie nach
"keytool.exe"
. Sie können das auf dem Laufwerk C: suchen. Sie finden es in"java jdk"
oder"java jre"
. Wenn Sie mehrere Versionen installiert haben, wählen Sie eine aus.Öffnen Sie eine CMD-Eingabeaufforderung und wechseln Sie in das oben angegebene Verzeichnis
"keytool.exe"
.Clip die "exe" und füge den obigen Befehl auf der Facebook-Seite ein.
Bei der Eingabe wird eine Fehlermeldung angezeigt, dass OpenSSL nicht wie im Eingabe- / Ausgabebefehl erkannt wird. Lösung: Laden Sie "Openssl" von OpenSSL herunter (wenn Sie einen 64-Bit-Computer haben, müssen Sie openssl-0.9.8e X64 herunterladen ). Extrahieren und speichern Sie es überall ... Ich habe es auf dem Laufwerk C: im
OpenSSl
Ordner gespeichertErsetzen Sie die openssl in dem obigen Befehl, in dem Sie einen OpenSSL-Fehler erhalten haben, durch "C: \ OpenSSL \ bin \ openssl" an beiden Stellen nach der Pipe "|".
Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie ein
android
.Und Sie erhalten Ihren Hash-Schlüssel. Weitere Schritte finden Sie erneut auf der Facebook-Seite.
quelle
Wenn Sie diesen Code zu
onCreate
Ihrer Aktivität hinzufügen , wird der Hash unter dem KeyHash- Tag in Ihrer logCat gedrucktSie können Ihrem Konto mehrere Hashkeys hinzufügen. Wenn Sie also im Debug ausgeführt wurden , vergessen Sie nicht, dies im Release-Modus erneut auszuführen .
quelle
Gehen Sie folgendermaßen vor, um den Android-Schlüssel-Hashcode zu erhalten:
cd C:\Program Files\Java\jdk1.6.0_26\bin
keytool -export -alias myAlias -keystore C:\Users\
Sie dann nur Ihren Benutzernamen ein\.android\myKeyStore | C:\openssl-0.9.8k_WIN32\bin\openssl sha1 -binary | C:\openssl-0.9.8k_WIN32\bin\openssl enc -a -e
quelle
myKeyStore
den Pfad Ihres Freigabeschlüssels an. Der obige Code ist für den Debug-SchlüsselDie einfachste Lösung, die ich gefunden habe, ist folgende:
Suchen Sie im Protokoll nach der Zeile, die folgendermaßen aussieht:
Kopieren Sie "abcdefgHIJKLMN + OPqrstuvwzyz" und fügen Sie es in den Facebook Android Key Hash-Bereich ein.
quelle
KeyHash: XWwXXXXX/5xxxxxxxxxxx=
im Protokoll und habe mir geholfen!Sie können den Schlüssel-Hash vom SHA-1-Schlüssel erhalten. Es ist sehr einfach, dass Sie Ihren SHA-1-Schlüssel (Signed APK) aus dem Play Store beziehen müssen.
Kopieren Sie nun diesen SHA-1-Schlüssel und fügen Sie ihn auf dieser Website http://tomeko.net ein. Überprüfen Sie auch das folgende Bild, um Ihren Schlüssel-Hash zu erhalten.
quelle
Ich habe auf diese Weise für Linux OS & Windows OS getan :
Linux:
keytool -exportcert -alias **myaliasname** -keystore **/home/comp-1/Desktop/mykeystore.jks** | openssl sha1 -binary | openssl base64
Mit freundlicher Änderung Aliasname und Schlüsselspeicher mit seinem Weg als Ihre Anforderung.
Terminal würde fragen , für Kennwort von Schlüsselspeicher. Sie müssen ein Passwort für denselben Keystore angeben .
Endlich würden Sie den Release Hashkey bekommen .
Windows:
Schritte zur Veröffentlichung von Hashkey :
keytool -exportcert -alias **myaliasname** -keystore **"C:\Users\hiren.patel\Desktop\mykeystore.jks"** | "C:\openssl-0.9.8e_X64\bin\openssl.exe" sha1 -binary | "C:\openssl-0.9.8e_X64\bin\openssl.exe" base64
Mit freundlicher Änderung Aliasname und Schlüsselspeicher mit seinem Weg als Ihre Anforderung.
Hinweis:
Bitte geben Sie Ihre Daten dort an, wo ich zwischen ** ** markiert habe.Terminal würde fragen , für Kennwort von Schlüsselspeicher. Sie müssen ein Passwort für denselben Keystore angeben .
Endlich würden Sie den Release Hashkey bekommen .
Getan
quelle
Download OpenSSL für Windows hier finden Sie 64bit und 32bit hier
Extrahieren Sie die heruntergeladene Datei
quelle
android
gibt einen 24-stelligen Hash und Eingabea
gibt 28-stelligen Hash. Keine Ahnung warum!Sie müssen einen Keystore mit dem Keytool für signierte Apps für Android erstellen, wie in Android Site beschrieben. Anschließend müssen Sie cygwin installieren und anschließend openssl aus Google-Code installieren. Führen Sie dann einfach den folgenden Befehl aus, und Sie erhalten den Hash Schlüssel für Android und dann diesen Hash-Schlüssel in die von Ihnen erstellte Facebook-Anwendung einfügen. Und dann können Sie über die Android-Anwendung auf die Facebook-Anwendung zugreifen, um eine Wand zu veröffentlichen ("Publish_stream") könnte ein Beispiel sein.
$ keytool -exportcert -alias aliasname -keystore sample_keystore.keystore | openssl sha1 -binary | openssl base64
Sie müssen den obigen Befehl von cygwin ausführen.
quelle
Laden Sie openSSL herunter -> Installieren Sie es -> es wird normalerweise in C: \ OpenSSL installiert
Öffnen Sie dann cmd und geben Sie ein
Um die JDK-Version zu überprüfen, gehen Sie zu C: / program files / java / jdk_version
Sie werden nach dem Passwort für Android gefragt.
quelle
Öffnen Sie einfach Ihre Hauptaktivitätsdatei und erstellen Sie die unten genannte Funktion:
1.1 Führen Sie Ihre Anwendung aus. Dadurch wird ein Hash-Schlüssel für Ihre Anwendung generiert.
Öffnen Sie nun log cat und suchen Sie mit "KeyHash" und kopieren Sie den Hash-Schlüssel.
Wenn Sie den Hash-Schlüssel generieren, können Sie diese Funktion entfernen.
quelle
1) Erstellen Sie einen Schlüssel zum Signieren Ihrer Anwendung und merken Sie sich den Alias.
2) Installieren Sie OpenSSL.
3) Legen Sie den bin-Ordner von OpenSSL in Ihren Pfad.
4) Befolgen Sie die unter "Single Sign-On einrichten" auf der FB-Android-SDK- Seite genannten Schritte und generieren Sie Ihren Hash-Schlüssel. Stellen Sie sicher, dass Sie den richtigen Alias- und Keystore-Dateinamen eingeben.
5) Erstellen Sie eine Anwendung auf Facebok und geben Sie auf der Registerkarte "Mobile Geräte" diesen Hash-Schlüssel ein.
quelle
Offizielle Dokumentation auf der Facebook-Entwicklerseite :
quelle
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
und ich erhalte immer noch einen Key-Hash, der keinem gespeicherten Key-Hash entsprichtDas hat bei mir funktioniert ...
Schritte:
quelle
Für Linux
Terminal öffnen:
Für Debug Build
Sie werden debug.keystore aus dem Ordner ".android" finden, kopieren Sie es aus und fügen Sie es auf dem Desktop ein und führen Sie den obigen Befehl aus
Zur Veröffentlichung Build
HINWEIS: Stellen Sie in beiden Fällen sicher, dass Sie nach dem Passwort gefragt werden müssen. Wenn nicht nach einem Passwort gefragt wird, bedeutet dies, dass im Befehl etwas nicht stimmt.
quelle
Für eine Android-Anwendung
Dieser Code wird verwendet, um den Hash-Schlüssel in Ihrer Android-Anwendung für die Facebook-Integration abzurufen. Ich habe alle Geräte getestet und es funktioniert. Ändern Sie nur den Paketnamen dieses Codes:
quelle
Als Antwort auf ein ähnliches Problem stellte ich fest, dass dies für mich funktioniert:
apkname.apk
Datei, deren Hash Sie kennen möchten, in den Ordner ' Java \ jdk1.7.0_79 \ bin 'keytool -list -printcert -jarfile apkname.apk
SHA1
Wert und konvertieren Sie ihn über diese Sitequelle
Die einfachste Lösung:
quelle
Führen Sie den folgenden Befehl unter Mac oder Windows aus, um einen Hash Ihres Release-Schlüssels zu generieren, und ersetzen Sie Ihren Release-Schlüssel-Alias und den Pfad zu Ihrem Keystore.
Verwenden Sie unter Windows:
Dieser Befehl sollte eine 28-Zeichen-Zeichenfolge generieren. Denken Sie daran , dass COPY und PASTE diesem Release Key Hash in Ihrem Facebook - App - ID Android - Einstellungen.
Bild: fbcdn-dragon-a.akamaihd.net/hphotos-ak-xpa1/t39.2178-6/851568_627654437290708_1803108402_n.png
Siehe unter: https://developers.facebook.com/docs/android/getting-started#release-key-hash und http://note.taable.com
quelle
Verwenden Sie dies für den Druckschlüssel-Hash in Kotlin
quelle
Meins auch in Android Studio gelöst, aber mit etwas anderem Ansatz.
So erhalten Sie den SHA-1-Wert in Android Studio.
Der SHA-1-Wert sieht folgendermaßen aus: CD: 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. Dies ist, was Facebook benötigt, um den generierten Hash "******************** =" zu erhalten und den Schlüssel-Hash auf die Facebook-App-Konsole zu kopieren.
Ein Teil dieser Antwort stammt von hier Github Link
quelle
Es gibt zwei Methoden, eine komplexe und eine einfache
Methoden Eins: (kleiner Komplex)
Zunächst müssen Sie ssl herunterladen
64bit
oder32bit
entsprechend die Datei mit dem Namen herunterladen, dere
nach dem Versionscode openssl-0.9.8e_X64.zip enthält ODER openssl-0.9.8e_WIN32.zip nicht mit demk
nach dem Versionscode.und in AndroidStudio / jre / bin Verzeichnis platzieren. Wenn Sie nicht wissen, wo Sie platzieren sollen, können Sie dieses Verzeichnis finden, indem Sie mit der rechten Maustaste auf die Android Studio Verknüpfung klicken als:
Jetzt haben Sie zwei erforderliche Dinge an einem Ort erledigt, aber Sie müssen immer noch den Weg für Ihre finden
debug.keystore
, der immer in der"C:\Users\yourusernamehere\.android\debug.keystore"
, zu finden ist.Wenn alles eingerichtet ist, ordnen Sie den Befehl an, den Sie für die Hash-Schlüsselgenerierung ausführen möchten
base64 format
, und Ihr Befehl sieht folgendermaßen ausSie werden aufgefordert, ein Kennwort für den debug.keystore einzugeben, der standardmäßig Android ist. Wenn Sie Ihren eigenen Schlüssel verwenden, gehört das Passwort auch Ihnen. Die Ausgabe wird so aussehen, wenn alles wie erwartet läuft. Ich hoffe, es kann helfen
Zweite Methode (entsprechend einfach)
Wenn Sie nicht alle oben genannten Schritte ausführen möchten, verwenden Sie einfach die folgende Methode, um den Hashkey zu protokollieren:
Ausgabe:
quelle
Der beste Ansatz ist die Verwendung des folgenden Codes:
Aber ich war so frustriert darüber, dass es kein einfaches Tool gibt, um den HashKey für die Facebook-App zu generieren. Jedes Mal musste ich mit Openssl und Keytool spielen oder einen Code verwenden, um den Hash von der Signatur zu erhalten ...
Also habe ich ein einfaches KeyGenTool geschrieben, das diese Arbeit für Sie erledigt : -> KeyGenTool bei Google Play <-
Genießen :)
quelle
Ich habe einen kleinen Fehler gemacht, der beachtet werden sollte. Wenn Sie Ihren Keystore verwenden, geben Sie Ihren Aliasnamen an, nicht androiddebugkey ...
Ich habe mein Problem gelöst. Wenn nun Facebook auf meinem Gerät installiert ist, erhält meine App immer noch Daten zur Facebook-Login-Integration. Kümmere dich nur um deinen Hash-Schlüssel.
Siehe unten.
Drücken EnterSie dann - Sie werden nach dem Passwort gefragt und geben dann Ihr Keystore-Passwort ein, nicht Android.
Cool.
quelle
quelle
Kotlin-Code zum Abrufen des Hash-Schlüssels
Bitte vergessen Sie nicht, Schlüssel in der Debug- und Release-Umgebung zu generieren, da sie sich gemäß den Build-Einstellungen ändern.
quelle
Versuche dies :
1) Hash-Schlüssel über die Befehlszeile abrufen (offizielles Dokument: https://developers.facebook.com/docs/android/getting-started )
ODER
2) Holen Sie sich den Hash-Schlüssel mit Code
quelle