Hash clave para Facebook Android SDK

No puedo encontrar la manera de obtener el Key Hash requerido para usar Facebook Android SDK. Descubrí que puedo usar keytool con estos comandos:

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

El único problema es que no tengo idea de dónde insertar esto, lo intenté a través de las ventanas de comandos (win7) e intenté abrir el archivo keytool.exe.

  1. Descargue e instale OpenSSL desde http://slproweb.com/products/Win32OpenSSL.html basado en Windows 32 o 64 bit. (Nota: descargue e instale primero visual C ++ 208 redistribuible desde ese sitio también)
  2. Coloque el directorio bin de OpenSSL instalado en la ruta de Windows.
  3. Abra el símbolo del sistema y vaya a C: \ Users {User_Name} .android
  4. ahora ponga este comando en cmd ” keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64 “. (consulte https://developers.facebook.com/docs/android/getting-started#samples )
  5. Ahora ingrese la contraseña “facebook” sin comillas dobles.
  6. Ahora se generará una clave hash enter image description here
  7. Finalmente dirígete al sitio para desarrolladores de Facebook. Asegúrate de haber iniciado sesión en Facebook y, usando el menú desplegable en la esquina superior derecha, ve a la “Configuración del desarrollador”:
  8. Una vez que esté en su configuración de desarrollador, seleccione ‘Aplicación de muestra’ de la navegación a la izquierda, y agregue y guarde su hash de clave en su perfil: enter image description here

Puede instalar Open SSL desde aquí , eso debería hacer que su comando funcione

Creé un script por lotes facebookkeydebug.bat , que devuelve el hash deseado de la clave de Facebook. Simplemente edite la secuencia de comandos, establezca las rutas correctas, el nombre del almacén de claves y ejecútelo.

 :: 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 

EDITAR: Publiqué un repository con algunos scripts por lotes para firmar y obtener claves de certificación en Windows: https://github.com/petrnohejl/Android-Scripts

puede usar el código a continuación para obtener la clave Hash:

 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()); } 

Referencia:

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

Para hacer las cosas más fáciles

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

esto debería proporcionarle las huellas dactilares necesarias, sin la molestia de instalar openssl.

p.ej

 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 

Este es un ejemplo de cómo obtener Key Hash de Keystore:

primero tenemos que obtener los caminos de:

Ruta de Java: C: \ Archivos de progtwig \ Java \ jdk1.6.0_35 \ jre \ bin

Abrir ruta SSL: C: \ OpenSSL-Win32 \ bin

(instalar desde: http://www.openssl.org/ )

Ruta del almacén de claves : C: \ Data \ ANDROID \ KEYSTORE \

2) luego ve a la línea de Comando y escribe:

cd [ruta de Java]

3) luego escribe:

keytool.exe -exportcert -alias [alias name] -keystore [Keystore Path] \ debug.keystore | [Abrir ruta SSL] \ openssl sha1 -binary | [Abrir ruta SSL] \ bin \ openssl base64

4) la contraseña de tu Keystore debe ser obligatoria y luego tienes la Hash Key relacionada con tu Android Keystore.

enter image description here

Este es el documento de cómo configurar Key Hash para Facebook :

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

Tienes que abrir una ventana de solicitud de comando. Vaya a inicio-> ejecutar y escriba ‘cmd’ y presione enter. Luego debe navegar a la carpeta donde está keytool (a menos que esté en su ruta), y luego escriba ese comando.

Es decir, suponiendo que el comando es para Windows y no para Linux.

La mejor manera es generar Key-Hash usando el código:

  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) { } } 

llamar a este método una vez y generar key-hash, disfrutar

C: \ Archivos de progtwig \ Java \ jdk1.6.0_22 \ bin \ keytool.exe -exportcert -alias “typeYouraliasname” -keystore location de su keystore | C: \ OpenSSL-Win32 \ bin \ openssl sha1 -binary | C: \ OpenSSL-Win32 \ bin \ openssl base64