Cómo generar Keyhash (Facebook) con Keytool en android para W7 32bit

He intentado generar el Keyhash para integrar el Facebook en nuestra aplicación, pero cuando he generado el keyhash a través de cmd prompt, no puede generar.

C:\Users\DON\.android>keytool -exportcert -alias androiddebugkey -keystore ~/.an droid/debug.keystore | openssl sha1 -binary | openssl base64 

Keytool no se reconoce como un comando interno o externo, un programa operativo o un archivo por lotes.

Y otro comando que uso es:

 C:\Program Files\Java\jdk1.6.0_20\bin>keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64 

'Openssl' no se reconoce como un comando interno o externo, un programa operativo o un archivo por lotes.

¿Cuál es el problema?

Utilizando este comando primero descargue este archivo http://code.google.com/p/openssl-for-windows/downloads/detail?name=openssl-0.9.8k_WIN32.zip . A continuación, extraiga el archivo y ejecute este comando:

 C:\Program Files\Java\jdk1.6.0_20\bin>keytool -export -alias myAlias -keystore C:\Users\DON\.android\myKeyStore | C:\openssl\bin\openssl sha1 -binary | C:\openssl\bin\openssl enc -a -xtIm30l*********= 

DON es el nombre de mi sistema y debe ser reemplazado por el nombre del sistema.

  1. Descargue el paquete openssl-for-windows .
  2. Extraer la cremallera.
  3. En las ventanas, edite la variable de sistema de ruta que apunta a <openssl-extracted-folder>/bin
  4. A continuación, ejecute el comando.

En primer lugar hacer la instalación de Facebook sdk a continuación, el programa principal si se agrega esto, obtendrá keyhash en la consola

Habrá posibilidades de 3 teclas de tipo una vez que se depura y otra es la clave de liberación y después de la carga de google cambios de firma, puede proporcionar todas estas 3 claves para la cuenta de desarrollador de Facebook, a continuación, puede comprobar el inicio de sesión de facebook. Dependiendo de su facebook modo de aplicación coincidirá con la tostada key.Use para ver el keyhash, si no conoce el monitor de android desde el estudio de Android

 import com.facebook.FacebookSdk; import com.facebook.appevents.AppEventsLogger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FacebookSdk.sdkInitialize(getApplicationContext()); AppEventsLogger.activateApp(this); printKeyHash(); } private void printKeyHash() { try { PackageInfo info = getPackageManager().getPackageInfo( getPackageName(), PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); } } catch (PackageManager.NameNotFoundException e) { Log.e("jk", "Exception(NameNotFoundException) : " + e); } catch (NoSuchAlgorithmException e) { Log.e("mkm", "Exception(NoSuchAlgorithmException) : " + e); } } 

}

Es la respuesta tardía, pero ayudará a la gente perezosa como yo .. añadir este código a su clase de aplicación, no hay necesidad de descargar openssl y no hay necesidad de establecer la ruta .. sólo necesita es sólo copiar mi código .. y keyHash Generados en log.

 import com.facebook.FacebookSdk; public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); FacebookSdk.sdkInitialize(getApplicationContext()); AppEventsLogger.activateApp(this); printKeyHash(); } private void printKeyHash() { try { PackageInfo info = getPackageManager().getPackageInfo( getPackageName(), PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); } } catch (PackageManager.NameNotFoundException e) { Log.e("jk", "Exception(NameNotFoundException) : " + e); } catch (NoSuchAlgorithmException e) { Log.e("mkm", "Exception(NoSuchAlgorithmException) : " + e); } } } 

Y no se olvide de añadir la clase MyApplication en el manifiesto:

 <application android:name=".application.MyApplication" </application> 
  • Java / Android: Obtener información de usuario de Facebook desde Graph Api, mostrar en TextView
  • ¿Cómo publicar la actualización en la página de Facebook automáticamente por hora programada? Usando android
  • Android: Cómo ocultar el círculo de progreso en Facebook login
  • Autorización para Android Facebook SDK 3.0
  • Facebook sdk, androide, pared, poste, línea, rotura
  • Facebook SDK 7.8.0 Error: get_activeBuildTarget no puede ser llamado desde un constructor ScriptableObject
  • Cordova Facebook Connect plugin fall en init
  • Autenticar usuario registrado con FB en mi servidor usando el Administrador de cuentas de Android
  • ¿Debug una aplicación Android firmada automáticamente? (Lo necesita para la integración de facebook)
  • Android: ID de aplicación de Facebook que muestra error en valores-ta / strings.xml y no puede generar apk firmado
  • Android ¿Por qué no se muestra el botón de salida de Facebook SDK?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.