3 votes

React Native FBSDK Clé de hachage non valide. Keyhash a été ajouté à developer.facebook et l'application est en ligne.

Tout d'abord, je sais que cela fait double emploi avec d'autres fils et questions, car je pense les avoir tous lus depuis hier.

Maintenant, j'essaie de me connecter en utilisant facebook sur une application React Native, pour l'instant je ne l'exécute que sur Android. La toute première fois que je l'ai testé, cela a fonctionné.

J'ai ajouté la clé que le téléphone affiche dans l'erreur à developer.facebook.com, j'ai changé mon application pour qu'elle y vive également et j'ai même essayé le code que les gens ont collé sur les anciens messages :

    try {
    PackageInfo info = getPackageManager().getPackageInfo(
                "com.blabla", 
                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) {

} catch (NoSuchAlgorithmException e) {

}

Voici le code que j'utilise pour la connexion elle-même :

LoginManager.logInWithReadPermissions(['public_profile', 'email', 'user_likes']).then({
        function(result) {
            if (result.isCancelled) {
                alert('Login was cancelled');
            } else {
                AccessToken.getCurrentAccessToken().then((accessTokenData) => {
                    const credential = firebase.auth.FacebookAuthProvider.credential(accessTokenData.accessToken);

                    firebase.auth().signInWithCredential(credential).then((result) =>{
                        alert('Inicio de sesión exitoso');
                    }, (error)=>{
                        console.log(error)
                    })
                });
            }
        },
        function(error) {
            alert('Login failed with error: ' + error);
        }
    })
}

J'obtiens cette erreur :

Running on real device

À ce stade, toute aide sera très appréciée, je suis assez désespéré.

-1voto

J'ai le même problème. Sur les appareils virtuels, tout fonctionne bien, mais sur le téléphone réel, cela ne fonctionne pas, alors que je n'ai pas ajouté la clé de hachage du message d'erreur. Je sais que le problème vient de l'application Facebook qui est installée sur mon téléphone, elle change la clé de hachage de mon application pour sa propre clé de hachage lorsque j'essaie de me connecter dans mon application.

-1voto

J'ai le même problème.

La réponse est que le hash de la clé change toujours dans la phase de développement, pour cette raison nous devons créer un autre hash de clé quand vous allez passer à la production.

J'ai vu ce tutoriel pour les développeurs de Facebook, et maintenant ça marche pour moi.

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

essayez juste d'exécuter la commande suivante et le keystore va vous donner le hashKey de production.

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

Cette commande fonctionne très bien sous macOS.

Utilisez simplement le même keyStore pour signer votre APK compilé.

Faites-moi savoir si ça marche pour vous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X