the - key hashes android studio
La aplicación para Android Key Hash no coincide con ningún hashes almacenado. (11)
Acabo de descubrir un error en la página de entrada de la muestra de la aplicación de muestra: si pega una clave de hash de la aplicación sin presionar Intro, y luego hace clic en el botón "Guardar cambios", el código recién ingresado desaparecerá, pero la página mostrará un ! " mensaje de respuesta. Esto no es cierto: no salvó. Debes presionar la tecla Enter luego de pegar la tecla hash y luego presionar "Guardar cambios".
Guardé una clave que incluye el carácter final =. Eso funciono.
Tengo una aplicación en producción en Play Store que utiliza un inicio de sesión con el SDK de Facebook. Cuando depuro la aplicación de Eclipse no hay ningún problema, pero cuando está en producción, me da el siguiente error después de que Facebook me solicite los permisos. He agregado en mi página de la aplicación en developers.facebook.com el hash clave generado con keytool usando este comando:
keytool -exportcert -alias diego -keystore "C: / Users / Diego / Desktop / CeluChat.KeyStore" | "C: / openssl / bin / openssl.exe" sha1 -binary | "C: / openssl / bin / openssl.exe" base64
CeluChat.KeyStore es el almacén de claves que utilicé cuando exporté la aplicación firmada, y cuando la herramienta de claves me pide la contraseña, ingresé lo mismo cuando exporté.
Pero el error que me produce (descargado de Play Store) es:
10-20 22: 21: 10.752: W / fb4a (:): BlueServiceQueue (5872): com.facebook.http.protocol.ApiException: Key hash VQ3XhZb5_tBH9oGe2WW32DDdNS0 no coincide con ningún hash de claves almacenadas.
El Key Hash que está en la excepción es diferente del hash de clave generado con keytool. De todos modos, agregué el Key Hash en Facebook, pero aún no funciona.
Bueno, si usas Windows usa este comando en cmd.
Mover a C: / Archivos de programa / Java / jdk1.8.0_25 / bin
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | "C:/openssl/bin/openssl.exe" sha1 -binary | "C:/openssl/bin/openssl.exe" base64
Al generar la clave hash, necesita usar openssl-0.9.8e_X64.zip en Windows, no puede usar openssl-0.9.8k_X64.zip
Esta es la solución.
Después de probar todo lo anterior, probé esto ... ¡y trabajé!
- Copiar el hash clave fue el mismo que Facebook da en la excepción,
- Reemplace
"_"
con"/"
y agregue un"="
al final, - Agregarlo a facebook
- También verifique el nombre del paquete y el nombre de la actividad una vez más. Esto funcionó para mí !!.
Es una buena pregunta. Y hay 2 formas de hacerlo. Lo que suele pasar con nosotros es mientras integramos el SDK de Facebook para Android, seguimos las instrucciones del sitio para desarrolladores de Facebook .
Pero una vez que la aplicación está en la tienda de juegos, tendemos a olvidar un procedimiento que aún está pendiente. Y terminamos con el mismo error:
05-13 14:45:43.882: W/fb4a(:<default>):BlueServiceQueue(25454): Exception during service
05-13 14:45:43.882: W/fb4a(:<default>):BlueServiceQueue(25454): com.facebook.http.protocol.ApiException: Key hash XXXXXXXXXXXXXX does not match any stored key hashes.
Jus tiene una lista de verificación para esto:
1) Usar la clave de depuración, mientras desarrolla la aplicación
El sitio para desarrolladores de Facebook es bastante útil con esto. Simplemente copie y pegue el código que tienen en la página de Introducción en el símbolo del sistema. verbigracia:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
La contraseña es itroid y obtendrá la clave de depuración que lo sigue.
2) Generando clave de depuración, luego de firmar la aplicación.
Una vez que la aplicación esté lista para su carga en la tienda Google Play, debemos firmarla con una clave, cuyo valor se genera desde el almacén de claves. Lo que se explica bien por Satheesh en su respuesta . utilizando :
keytool -exportcert -alias <Alias Name here> -keystore <Path to keystore> | openssl sha1 -binary | openssl base64
Lo que le da una clave diferente, que la clave de depuración.
Facebook de alguna forma reemplaza +, - y / con _
Así que intente reemplazar _ con +, - y / y agregue esa clave hash.
Esperemos que funcione.
Habilite el inicio de sesión único Habilite el inicio de sesión único para su aplicación configurando el inicio de sesión único en Sí a continuación. por favor revise el punto no. 9 en https://developers.facebook.com/docs/facebook-login/android
Siga el método a continuación para generar una clave hash. Esto lo sugiere @lucianbase en esta página https://github.com/AntonioCuevaUrraco/nativescript-facebook-login/issues/14
Genere la clave SHA1 de su aplicación usando Android Studio o la herramienta cmd. copiarlo como este CD: A1: EA: A3: 5C: 5C: 68: FB: FA: 0A: 6B: E5: 5A: 72: 64: DD: 26: 8D: 44: 84 y abrir http://tomeko.net/online_tools/hex_to_base64.php para convertir su valor SHA1 a base64. Esto es lo que Facebook requiere obtener el hash generado "******************** =" y copiar el hash de la clave a la aplicación de Facebook.
Simple, coloque la clave hash del mensaje de error devuelto:
10-20 22:21:10.752: W/fb4a(:):BlueServiceQueue(5872): com.facebook.http.protocol.ApiException: Key hash VQ3XhZb5_tBH9oGe2WW32DDdNS0 does not match any stored key hashes.
VQ3XhZb5_tBH9oGe2WW32DDdNS0
En los desarrolladores de Facebook hash clave de tu aplicación.
Espero que esto ayude.
Simplemente reemplace el error clave hash dentro de su https://developers.facebook.com/app aplicación ...!
100 Porcentaje Funcionará sin problemas.
-Solil
Usé esto para mostrar la clave cuando ejecuté mi aplicación. En mi caso, obtenía el hash de clave incorrecto del comando keytool. Tenga en cuenta que si ingresa la contraseña incorrecta (a propósito), en lugar de recibir un error, se genera una clave incorrecta. Use esto para obtener el hash correcto y ver si coincide con el que está en el registro de errores
try {
PackageInfo info = getPackageManager().getPackageInfo("com.package.mypackage", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("MY KEY HASH:", sign);
Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show();
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Además, si por alguna razón el método anterior no funciona. Intenta usar esta APK para generar el hash de clave correcto. Recuerde que debe firmarlo con cualquier certificado que esté intentando recuperar (depurar o liberar). Instálalo en tu dispositivo de prueba y ejecútalo.
bueno, la mejor y más fácil manera es así. si ve ese problema en la pantalla de su teléfono. Deberías ver ese problema con android studio LOGCAT. le gustará esto
01-26 14:58:22.885 14851-19534/? W/fb4a.BlueServiceQueue: Exception during service
X.1xO: [code] 404 [message]: Key hash 961x8mIbWmA7TRRpbk...= does not match any stored key hashes. (404) [extra]: null
at X.0fG.D(:240135)
at X.0k8.F(:255078)
at X.3gX.EUB(:738232)
at X.0fo.handleResponse(:242693)
at X.0k5.run(:254998)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
at X.0NH.run(:187661)
at X.0JQ.run(:49671)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at X.0NM.run(:187873)
at java.lang.Thread.run(Thread.java:761)
copie esta clave hash de logcat, que es lo que había hecho en privado (...) y péguela en su página de desarrollador de Facebook. Resolverá su problema de inmediato. Asegúrese también de que la clave hash de su APK liberada sea diferente de la clave hash original que se descarga desde google play.