Jak utworzyć Hash klucza Android Facebook?
W ogóle nie rozumiem tego procesu. Udało mi się przejść do folderu zawierającego keytool w Java SDK. Chociaż ciągle dostaję błąd openssl nie rozpoznany jako wewnętrzne lub zewnętrzne polecenie. Problem w tym, że nawet jeśli uda mi się to uruchomić, to co bym zrobił i z czym potem?
18 answers
Oto co musisz zrobić -
Pobierz openSSl z kodu Wyciągnij to. utwórz folder-OpenSSL w C: / i skopiuj wyodrębniony kod tutaj.
Detect debug.ścieżka do pliku keystore. Jeśli u nie znaleziono, wykonaj wyszukiwanie w C: / i użyj ścieżki w poleceniu w następnym kroku.
Wykryj swój keytool.exe path i przejdź do tego katalogu / w wierszu polecenia i uruchom to polecenie w 1 linii -
$ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64
Zapyta o hasło, umieść Androida to wszystko. u will get a key-hash
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-21 20:50:27
Dla Linuksa i Maca
Otwarty Terminal:
For Debug Build
keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64
Znajdziesz debugowanie.keystore w ".android " folder. Skopiuj go i wklej na pulpit i uruchom powyższe polecenie.
For release Build
keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath> | openssl sha1 -binary | openssl base64
Uwaga: Upewnij się, że w obu przypadkach pyta o hasło. Jeśli nie pyta o hasło, oznacza to, że coś jest nie tak w poleceniu. Hasło do debugowania .keystore jest "android" aby zwolnić, musisz wprowadzić hasło, które ustawiłeś podczas tworzenia keystore .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-18 16:23:56
Proszę spróbować:
public static void printHashKey(Context pContext) {
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String hashKey = new String(Base64.encode(md.digest(), 0));
Log.i(TAG, "printHashKey() Hash Key: " + hashKey);
}
} catch (NoSuchAlgorithmException e) {
Log.e(TAG, "printHashKey()", e);
} catch (Exception e) {
Log.e(TAG, "printHashKey()", e);
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-09 06:13:30
OpenSSL: musisz go zainstalować, jeśli nie jest preinstalowany z Twoim systemem operacyjnym (np. Windows nie ma preinstalowanego) . Jak zainstalować, który zależy od systemu operacyjnego (Dla Windows sprawdź link dostarczone przez coder_For_Life22).
Najprostszym sposobem bez bałaganu jest skopiowanie OpenSSL.exe binarny do ścieżki keytool jeśli jesteś na Windows. Jeśli nie chcesz tego robić, musisz dodać go do swojej zmiennej środowiskowej PATH
. Następnie wykonaj polecenie podane w dokumentacji.
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Zauważ, że argument po -keystore
wskazuje na klucz debugowania. Ta lokalizacja zależy również od systemu operacyjnego. Powinno znajdować się w jednej z następujących lokalizacji:
- Windows Vista lub 7 - C:\Users\.Android\debug.keystore
- Windows XP - C:\Documents i ustawienia\.Android\debug.keystore
- OS X i Linux -~/.android / debug.keystore
If you did everything right, powinieneś zostać poproszony o podanie hasła. To jest android
dla certyfikatu debugowania. Jeśli hasło jest poprawne, konsola wyświetla hash (nieco losowe znaki i cyfry).
Weź to i skopiuj do pola android key hash
wewnątrz preferencji aplikacji na facebook. Aby się tam dostać, przejdź do developers.facebook.com/apps, wybierz swoją aplikację, przejdź do Edit settings
i przewiń w dół. Następnie odczekaj kilka minut, aż zmiany wejdą w życie.
Aby wygenerować hash klucza na komputerze lokalnym, uruchom narzędzie keytool Java (które powinno znajdować się na ścieżce konsoli) na keystore debug Androida. Jest to domyślnie w Twoim domu .android directory). Na OS X Uruchom:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
W systemie Windows użyj: -
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
Mam nadzieję, że to ci pomoże
Ref-developer facebook site
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-18 08:06:37
Dla Windows:
- otwórz wiersz polecenia i wklej poniżej polecenia
Keytool-exportcert-alias androiddebugkey-keystore / Align = "left" / Android\debug.keystore / OpenSSL sha1-binary / openssl base64
-
Wprowadź hasło: android -- > naciśnij Enter
-
Skopiuj wygenerowany klucz Hashowy -- > Zaloguj się na Facebook za pomocą konta programisty
Przejdź do aplikacji Facebook -- > ustawienia -- > Wklej Hash key w " Key hashes" opcja -- > Zapisz zmiany.
Teraz Przetestuj swoją aplikację na Androida za pomocą Facebook Log-in / Share itp.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-26 05:15:22
Jest też krótkie rozwiązanie. Po prostu uruchom to w aplikacji:
FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this));
Dłuższy, który nie potrzebuje FB SDK (oparty na rozwiązaniu proszę.) :
public static void printHashKey(Context context) {
try {
final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
for (android.content.pm.Signature signature : info.signatures) {
final MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
final String hashKey = new String(Base64.encode(md.digest(), 0));
Log.i("AppLog", "key:" + hashKey + "=");
}
} catch (Exception e) {
Log.e("AppLog", "error:", e);
}
}
Wynik powinien kończyć się znakiem"=".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-08 14:10:35
Tak uzyskałem moje:
private class SessionStatusCallback implements Session.StatusCallback {
@Override
public void call(Session session, SessionState state, Exception exception) {
if (exception != null) {
new AlertDialog.Builder(FriendActivity.this)
.setTitle(R.string.login_failed_dialog_title)
.setMessage(exception.getMessage())
.setPositiveButton(R.string.ok_button, null)
.show();
}
Więc gdy próbujesz wejść bez klucza, wystąpi wyjątek. Facebook umieścił odpowiedni klucz w tym wyjątku. Wszystko, co musisz zrobić, to skopiować.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-04 13:35:15
Dla kogoś takiego jak ja tutaj są kompletne szczegóły (Dla Windows)
1. Pobierz OpenSSl albo 1st lub 2nd w oparciu o system 32bit lub 64bit .
2. Rozpakuj pobrany zip do katalogu C
3. Otwórz wyodrębniony folder do bin i skopiuj ścieżkę ,powinno to być coś w stylu C:\openssl-0.9.8k_X64\bin\openssl
(Dodaj \openssl na końcu)
4. (Pobierz ścieżkę do folderu bin Jdk, jeśli wiesz jak, zignoruj to).
Otwórz Android studio ~plik~struktura projektu ( Ctrl + alt + shift + S), wybierz lokalizację SDK w lewym panelu bocznym, skopiuj lokalizację JDK i dodaj do niej /bin
Więc ostateczna lokalizacja JDK będzie jak C:\Program Files\Android\Android Studio\jre\bin
Stosujemy tę metodę, aby uzyskać lokalizację Jdk, ponieważ możesz użyć wbudowanego jdk tak jak ja
Teraz masz OpenSSL location & JDK location
5. teraz potrzebujemy debug keystore location , do tego otwórz C ~ > Users~>YourUserName~>.android powinno być debugowanie nazwy pliku.keystore, Teraz skopiuj lokalizację ścieżki, powinno być coś w stylu
C:\Users\Redman\.android\debug.keystore
6. teraz otwórz wiersz polecenia i wpisz polecenie
cd YourJDKLocationFromStep4
W moim przypadku
cd C:\Program Files\Android\Android Studio\jre\bin
7. skonstruuj teraz następujące polecenie
keytool -exportcert -alias androiddebugkey -keystore YOURKEYSTORELOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64
W moim przypadku komenda będzie wyglądała tak:
keytool -exportcert -alias androiddebugkey -keystore C:\Users\Redman\.android\debug.keystore | C:\openssl-0.9.8k_X64\bin\openssl sha1 -binary | C:\openssl-0.9.8k_X64\bin\openssl base64
Teraz wprowadź To polecenie w wierszu polecenia , jeśli kiedykolwiek zrobiłeś coś dobrze, zostaniesz poproszony o hasło (password is android)
Enter keystore password: android
To wszystko, otrzymasz klucz Hash, po prostu skopiuj go i użyj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-15 13:58:48
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-16 04:27:18
Następnie dodaj OpenSSL \ bin do zmiennych systemowych path:
Mój komputer -> Właściwości -> zaawansowane konfiguracje -> Zaawansowane -> Zmienne systemowe -> pod zmiennymi systemowymi znajdź ścieżkę i dodaj ją do jej zakończeń: ;youfullopenssldir \ bin
Teraz otwórz wiersz poleceń w folderze jdk \ bin C:\Program Files \ Java \ jdk1.8. 0_40 \ bin (w systemie Windows przytrzymaj shift i kliknij prawym przyciskiem myszy - > otwórz wiersz poleceń tutaj) i użyj:
keytool -exportcert -alias keystorealias -keystore C:\yourkeystore\folder\keystore.jks | openssl sha1 -binary | openssl base64
I skopiować 28 liczba długości, którą generuje po podaniu hasła.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-24 06:29:30
Od API 26, możesz wygenerować swoje klucze HASHOWE za pomocą następującego kodu w KOTLIN bez potrzeby korzystania z Facebook SDK.
fun generateSSHKey(context: Context){
try {
val info = context.packageManager.getPackageInfo(context.packageName, PackageManager.GET_SIGNATURES)
for (signature in info.signatures) {
val md = MessageDigest.getInstance("SHA")
md.update(signature.toByteArray())
val hashKey = String(Base64.getEncoder().encode(md.digest()))
Log.i("AppLog", "key:$hashKey=")
}
} catch (e: Exception) {
Log.e("AppLog", "error:", e)
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-30 09:50:33
Możesz pobrać wszystkie swoje odciski palców z https://console.developers.google.com/projectselector/apis/credentials
I użyj tego kodu Kotlina, aby przekonwertować go na keyhash:
fun main(args: Array<String>) {
listOf("<your_production_sha1_fingerprint>",
"<your_debug1_sha1_fingerprint>",
"<your_debug2_sha1_fingerprint>")
.map { it.split(":") }
.map { it.map { it.toInt(16).toByte() }.toByteArray() }
.map { String(Base64.getEncoder().encode(it)) }
.forEach { println(it) }
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-24 13:08:20
Znalazłem najprostsze narzędzie i używałem go wiele razy, to doskonale działa. zobacz, to pomoże.
Sprawdź Ta odpowiedź, aby uzyskać więcej szczegółów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-03 06:36:47
Uruchom albo to w aplikacji:
FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this)+"=");
Lub to:
public static void printHashKey(Context context) {
try {
final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
for (android.content.pm.Signature signature : info.signatures) {
final MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
final String hashKey = new String(Base64.encode(md.digest(), 0));
Log.i("AppLog", "key:" + hashKey + "=");
}
} catch (Exception e) {
Log.e("AppLog", "error:", e);
}
}
A potem spójrz na dzienniki.
Wynik powinien kończyć się znakiem"=".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-08 14:09:45
Miałem dokładnie ten sam problem, nie pytano mnie o hasło i wydaje się, że miałem złą ścieżkę do pliku keystore.
W rzeczywistości, jeśli keytool nie znajdzie ustawionego magazynu, utworzy go i poda niewłaściwy klucz, ponieważ nie używa WŁAŚCIWEGO.
Ogólna zasada jest taka, że jeśli nie zostaniesz poproszony o hasło, wygenerowany zostanie niewłaściwy klucz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-23 13:55:50
Możesz użyć tego apk
1.first install the app from the Google play store
2.install the above apk
3.launch the apk and input the package name of your app
4.then you will get the hash code you want
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-02 05:04:06
Https://developers.facebook.com/docs/android/getting-started/
4.19.0-25 stycznia 2017
Facebook SDK
Modified
Facebook SDK jest teraz automatycznie inicjowany po uruchomieniu aplikacji. W większości przypadków ręczne wywołanie FacebookSDK.sdkInitialize () nie jest już potrzebne. Zobacz upgrade guide aby uzyskać więcej szczegółów.
Do Debugowania
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), 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 (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-17 11:56:00