Esta aplicación no tiene hashes de clave de Android configurados. - Iniciar sesión con Facebook SDK

81

Tengo un problema para iniciar sesión con una cuenta de Facebook en mi aplicación. Leí en Facebook Doc. E hice todos los pasos como Facebook Doc.

Primero en iniciar sesión con una cuenta de Facebook en la aplicación - ¡ EXITOSO ! y luego cerrar sesión en la aplicación. Quiero iniciar sesión de nuevo con mi facebook acount. ¡¡Pero no funciona !! ¡Y tomé este Excepiton! Por favor, ayúdame !

Excepción: esta aplicación no tiene ningún hash de clave de Android configurado. Configure los hash de clave de su aplicación en http: developers.facebook.com/apps/ "ID de la aplicación".

Finalmente; Solía ​​parte del código para HashKey Genarate

 try {
        PackageInfo info =     getPackageManager().getPackageInfo("MY PACKAGE NAME",     PackageManager.GET_SIGNATURES);
        for (android.content.pm.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) {
}

Resolví mi problema. Debería haber terminado de configurar en Facebook. Pasos:

  1. Vaya a la página del desarrollador de Facebook: https://developers.facebook.com/
  2. Abra las pestañas de la aplicación y luego haga clic en Configuración

  3. Pegue el hashkey de generación en el campo de HashKey = Si aún no lo tiene, obtenga la parte del código del hash de clave

  4. Y el inicio de sesión único será "Sí": Inicio de sesión único: habilite esta configuración.

Quería compartir mi determinación. Quizás alguien necesite esta solución. Buena suerte !

Tarık Yurtlu
fuente
1
Gracias - me ayudaron y me habían experimentado el mismo problema 1
Simon
Facebook ofrece ahora una muy buena explicación de inicio rápido sobre cómo generar hashes, después de hacer clic en el botón de configuración y agregar una nueva plataforma: Para Mac: keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64Para Windows:keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
FilipR
¿Cómo resolvió este problema?
andrei
2
En su lugar, debe publicar su solución como respuesta y marcarla como una respuesta. Esto dejará de mostrar esta pregunta como sin respuesta.
Sufian

Respuestas:

15

No necesita generar su clave hash. Cuando intente acceder a Facebook desde su aplicación, recibirá un mensaje de error que dice que "[Hash Key]" no está registrado o configurado. Simplemente copie esa clave y vaya a developer.facebook.com donde ha registrado su aplicación para la verificación de Facebook e inclúyala debajo de los hash de clave.

Recuerde: para cada dispositivo, la clave hash puede ser diferente. Debes incluirlo recientemente.

Por defecto, esta clave debería funcionar: 2jmj7l5rSw0yVb / vlWAYkK / YBwk =

Además, antes de todo, debe proporcionar a Facebook los detalles de su aplicación, junto con capturas de pantalla de dónde está usando las funciones de Facebook y las razones por las que las está usando. Necesitan verificar eso.

Nielarshi
fuente
Gracias Nielarshi por tu respuesta. Pero resolví de otra manera.
Tarık Yurtlu
2
@ TarıkYurtlu ¿Qué es? He registrado la clave hash pero no funcionó. Si desinstalo la aplicación de Facebook, funcionará. ¿Debo registrar la aplicación para su lanzamiento o podemos hacerlo para el desarrollo?
Amt87
4
Hilo antiguo, pero ... ¿No es la clave diferente para cada "versión de apk firmada" y no para cada dispositivo? Seguramente, si fuera por cada dispositivo, nadie podría usarlo. Sugerencia para los demás: la clave hash entre la versión firmada que carga y la que usa cuando acaba de desarrollar es diferente. Aunque puede agregar varias claves hash en Facebook, no debería ser un problema. En el momento en que use otra clave de firma, el hash cambiará.
renevdkooi
10

Para generar un hash de su clave de lanzamiento, ejecute el siguiente comando en Mac o Windows sustituyendo su alias de clave de lanzamiento y la ruta a su almacén de claves. En OS X, ejecute:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

En Windows, use:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64


Ref: https://developers.facebook.com/docs/android/getting-started/#create_hash

Evan Lévesque
fuente
2

Si no ha publicado su aplicación y solo desea usar el hash de la versión de depuración, puede obtenerlo de su almacén de claves de depuración con este comando:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Más sobre esta publicación SO relacionada

kip2
fuente
1

Hay una manera fácil de obtener su clave hash.

Simplemente coloque en su archivo .kt principal, en el método onCreate, las siguientes líneas:

FacebookSdk.sdkInitialize(this)
println("Facebook hash key: ${FacebookSdk.getApplicationSignature(this)}")

Luego copie el resultado al sitio web de desarrolladores de Facebook. A veces, el resultado no tiene el símbolo igual (=) al final de la cadena generada. Si es así, agréguelo manualmente.

Robert Pal
fuente
1

Obtén todo Hash Expo

expo fetch: android: hashes

Joao Paulo Pinheiro
fuente