Key hash for Facebook Android SDK

Nie mogę dowiedzieć się, jak uzyskać klucz Hash wymagany do korzystania z Facebook Android SDK. Domyśliłem się, że mogę używać keytool z tymi poleceniami:

  keytool -exportcert -alias [alias]
 -keystore [keystore] | openssl sha1 -binary | openssl enc -a -e

Jedynym problemem jest to, że nie mam pojęcia, gdzie to wstawić, próbowałem przez okna poleceń (win7) i próbowałem otworzyć plik keytool.exe.

Author: LisaMM, 2010-12-03

9 answers

  1. Pobierz i zainstaluj OpenSSL z http://slproweb.com/products/Win32OpenSSL.html oparty na windows 32 lub 64 bit.(Uwaga: Pobierz i zainstaluj pierwszy Visual C++ 208 redisributable również z tej strony)
  2. Umieść katalog bin z zainstalowanym OpenSSL w ścieżce windows.
  3. Otwórz wiersz polecenia i przejdź do C:\Users{User_Name}.android
  4. Teraz umieść to polecenie NA cmd " keytool-exportcert-alias androiddebugkey-keystore debug.keystore / OpenSSL sha1-binary | OpenSSL base64".(refer https://developers.facebook.com/docs/android/getting-started#samples )
  5. teraz wprowadź hasło "facebook" bez podwójnego cytatu.
  6. Teraz zostanie wygenerowany klucz hashowy Tutaj wpisz opis obrazka
  7. na koniec przejdź do strony dewelopera Facebook. Upewnij się, że jesteś zalogowany na Facebook i, korzystając z rozwijanego menu w prawym górnym rogu, przejdź do "ustawień dewelopera":
  8. Gdy znajdziesz się w Ustawieniach programisty, wybierz "Przykładowa aplikacja" z nawigacji na w lewo, a także dodać i zapisać hash klucza do swojego profilu: Tutaj wpisz opis obrazka
 14
Author: Pradyumna Swain,
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-07 12:56:51

Możesz zainstalować Open SSL z tutaj , co powinno sprawić, że Twoje polecenie zadziała

 27
Author: ,
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
2010-12-03 17:55:59

Stworzyłem skrypt wsadowy facebookkeydebug.bat , który zwraca żądany hash klucza Facebook. Wystarczy edytować skrypt, ustawić poprawne ścieżki, nazwę keystore i uruchomić go.

:: Getting Android key hash for Facebook app on Windows
:: Requirement: OpenSSL for Windows (http://code.google.com/p/openssl-for-windows/downloads/list)
:: Usage: set paths and run facebookkeydebug.bat

@echo Exporting keystore cert
keytool -exportcert -alias androiddebugkey -keystore C:\Users\myusername\.android\debug.keystore -storepass android -keypass android > debug.keystore.bin

@echo Converting to sha1
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl sha1 -binary debug.keystore.bin > debug.keystore.sha1

@echo Converting to base64
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1 -out debug.keystore.base64

@echo Done, Android hash key for Facebook app is:
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1
@pause

EDIT: opublikowałem repo z kilkoma skryptami wsadowymi do podpisywania i uzyskiwania kluczy cert w systemie Windows: https://github.com/petrnohejl/Android-Scripts

 20
Author: petrnohejl,
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-08-24 14:46:23

Możesz użyć poniższego kodu, aby uzyskać klucz Hashowy:

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 (NameNotFoundException e) {
   Log.e("name not found", e.toString());
  } catch (NoSuchAlgorithmException e) {
   Log.e("no such an algorithm", e.toString());
  }

Odniesienie:

Http://limbaniandroid.blogspot.com/2013/04/how-to-get-hash-key-for-integarte.html

 12
Author: Rudi,
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-03-23 06:27:02

To make things easier -

keytool.exe -list -alias androiddebugkey -keystore debug.keystore -v

To powinno zapewnić Ci potrzebne odciski palców, bez kłopotów z instalacją openssl.

Np.

Certificate fingerprints:
         MD5:  1A:5E:AA:CB:1A:CF:68:F0:8B:DA:D8:BC:EE:4F:BF:EE
         SHA1: D2:89:D1:5A:BC:F8:E3:E5:62:4D:DD:20:DD:96:CD:AB:51:A1:C1:7F
         Signature algorithm name: SHA1withRSA
         Version: 3
 8
Author: O.P.S.S,
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-05-03 14:36:28

To jest przykład jak uzyskać Hash klucza z magazynu kluczy:

Najpierw musimy uzyskać ścieżki:

Ścieżka Javy: C:\Program Files\Java \ jdk1. 6. 0_35\jre\bin

Otwórz ścieżkę SSL: C:\OpenSSL-Win32\bin

(Zainstaluj z: http://www.openssl.org/)

Ścieżka Keystore: C:\Data\ANDROID\KEYSTORE\

2) Następnie przejdź do linii poleceń i wpisz:

Cd [Java path]

3) Następnie wpisz :

Keytool.exe-exportcert-alias [nazwa aliasu] -keystore [Keystore Ścieżka] \ debug.keystore / [Open SSL Path]\OpenSSL sha1-binary /[Open SSL Path]\bin \ OpenSSL base64

4) hasło do Keystore musi być wymagane, a następnie masz Hash Key związane z Keystore Androida.

Tutaj wpisz opis obrazka

To jest doc jak ustawić Key Hash dla Facebook:

Https://developers.facebook.com/docs/android/getting-started#release-key-hash

 2
Author: Jorgesys,
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-10-08 19:06:55

Musisz otworzyć okno wiersza polecenia. Przejdź do start- > Uruchom i wpisz " cmd " i naciśnij enter. Następnie musisz przejść do folderu, w którym znajduje się keytool (chyba że znajduje się w twojej ścieżce), a następnie wpisać to polecenie.

To znaczy, zakładając, że polecenie jest dla windows, a nie Linuksa.

 1
Author: Falmarri,
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
2010-12-03 17:07:56

Najlepszym sposobem jest wygenerowanie Key-Hash za pomocą kodu:

 public static void generateKeyHash(Context context) {
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(
                "com.example.user2.testapp",
                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 (PackageManager.NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
}

Wywołanie tej metody raz i wygenerowanie key-hash, enjoy

 1
Author: Pankaj kumar,
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-07-08 09:22:55

C:\Program Files \ Java \ jdk1.6. 0_22 \ bin\keytool.exe-exportcert-alias "typeYouraliasname" - lokalizacja keystore twojego keystore | C:\OpenSSL-Win32\bin\openssl sha1-binary | C:\OpenSSL-Win32\bin\openssl base64

 0
Author: Aqib Butt,
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-08-22 11:03:16