La aplicación está mal configurada para iniciar sesión en Facebook con Release Key Hash

He integrado Facebook en mi aplicación. Probé mi aplicación con Debug Key Hash estaba bien en el emulador y mi dispositivo HTC. Cuando probé el Release Key Hash para mi APK firmado, “La aplicación está mal configurada para el inicio de sesión en Facebook”, el error siempre ocurría en mi dispositivo HTC One X.

keytool -exportcert -alias android -keystore C: \ android2012 \ android.keystore | openssl sha1 -binary | openssl base64

Usé el comando mencionado anteriormente para generar el hash de la clave de Liberación. El nombre de alias es “android”. Se generó con éxito el hash de clave después de ingresar la contraseña. Este hash de clave se ingresó en el Panel de control de Facebook e intenté acceder en mi APK firmado, pero falló.

Cualquiera puede ayudar? Atascado con este error por algunos días. ¡Muchas gracias!

Por qué funciona en el emulador o incluso en el dispositivo mientras lo prueba es porque, mientras prueba desde eclipse, utiliza el debug.keystore y no su clave de liberación.

Siga una de las dos soluciones a continuación, y debería estar listo para continuar.

Solución 1:

Pruebe este enlace: http://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1 . Descubrí que usar el método de Facebook para obtener una clave hash no siempre funcionaba como se anunciaba. Sin embargo, este enlace tiene un método diferente para obtener la clave hash y casi siempre ha funcionado.

Solución 2:

Dicho esto, siempre encontré que lo más simple era dejar que el SDK de Facebook te dijera cuál es tu Hash Key . Esto es mucho más simple y no debería tomar más de un par de minutos.

Paso 1: en su SDK de Facebook, ubique la clase Util.java . En eso, cambia esto:

private static boolean ENABLE_LOG = false; 

a:

 private static boolean ENABLE_LOG = true; 

Paso 2: crea un nuevo APK firmado, transfiérelo a tu dispositivo e instálalo. Si ya está instalado, naturalmente, se lo indicará.

Paso 3: con su DDMS (Logcat) ejecutándose y su dispositivo conectado a la computadora, ejecute la aplicación y siga buscando una advertencia de desajuste clave . Esa advertencia tiene la clave Hash real . Copie esa clave, vaya a su página de Desarrollador de Facebook y agregue la nueva clave a la lista.

¡Estuve atascado en este tema durante aproximadamente una semana! Quería generar la clave hash para mi propio almacén de claves y no para el depurador.keystore. He intentado todas las soluciones posibles en la web …

Finalmente llegué a un entendimiento extraño:

keytool -exportcert -alias androiddebugkey -keystore [PATH_TO_KEYSTORE] \ debug.keystore | [PATH_TO_OPENSSL] \ openssl sha1 -binary | [PATH_TO_OPENSSL] \ openssl base64

usando este método, me pidieron la contraseña y recibí una clave hash (incorrecta)

segundo método en tres pasos propuestos aquí Facebook Android Generate Key Hash

keytool -exportcert -alias androiddebugkey -keystore [PATH_TO_KEYSTORE] \ debug.keystore> [PATH_TO_OPENSSL] \ debug.txt [PATH_TO_OPENSSL] \ openssl sha1 -binary [PATH_TO_OPENSSL] \ debug.txt> [PATH_TO_OPENSSL] \ bin \ debug_sha.txt [PATH_TO_OPENSSL ] \ openssl base64 -in [PATH_TO_OPENSSL] \ bin \ debug_sha.txt> [PATH_TO_OPENSSL] \ bin \ debug_base64.txt

usando este método, también me pidieron la contraseña y recibí una clave hash diferente = la correcta …

PD Pon tu alias en lugar de “androiddebugkey” y tu keystore en lugar de “debug.keystore”

Este problema puede deberse a que estamos utilizando versiones de “openssl-0.9.8k”. Intente usar una versión diferente ya sea “openssl-0.9.8e” o “openssl-0.9.8d” desde el siguiente enlace:

https://code.google.com/p/openssl-for-windows/downloads/list

Este problema no surgirá.

La solución 2 de Siddharth a veces no es posible en Facebook SDK 3.0 en adelante. Use el siguiente código para brindar por el hash de la clave correcta dentro de su aplicación.

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

reemplace com.package.mypackage con su nombre de paquete …

He tenido este problema durante dos meses. Mis claves hashes han estado hasta 9. Hoy finalmente encontré la solución simple:

PASO 1:

Instale el sdk de Facebook que descargó de la página del desarrollador de Facebook en su teléfono. No instale la aplicación normal de Facebook. Asegúrate de que puedes iniciar sesión en Facebook. Luego cierre la sesión.

PASO 2:

Exporte su aplicación con su clave de lanzamiento final como una aplicación, como lo haría al subirla a la tienda de juegos.

PASO 3:

Coloque el archivo Apk en su teléfono mediante un cable usb o un dispositivo USB.

ETAPA 4:

Instale su aplicación, utilizando un administrador de archivos: por ejemplo, https://play.google.com/store/apps/details?id=com.rhmsoft.fm

PASO 5:

Inicie su aplicación e intente iniciar sesión con Facebook. Se abrirá un cuadro de diálogo y le dirá: “la clave no se ha encontrado en la consola del desarrollador de Facebook”.

PASO 6:

Escriba la clave.

PASO 7:

Póngalo en su consola de desarrollador de Facebook y guárdelo. Ahora terminaste. Cualquiera que descargue su aplicación, publicada con keystore usado anteriormente, puede iniciar sesión en Facebook.

Disfrutar