web-dev-qa-db-fra.com

Le hachage de la clé Facebook ne correspond à aucun hachage de clé stocké

J'ai vraiment des problèmes avec la clé de hachage de Facebook ... je l'ai générée dans mon Eclipse ... preuve:  

Ensuite, je suis allé sur https://developers.facebook.com/ et j'ai enregistré une nouvelle application .    

Et enfin, j'ai mis mon hashkey sur les paramètres des développeurs Facebook:  

Mais pas ce que je fais, je continue à recevoir le même journal des erreurs:

Est-ce que quelqu'un sait ce que j'ai fait de travers ou comment je peux résoudre ce problème? nom que j'ai mis quelque part le plus probable ..

Merci, Yenthe

44
Yenthe

Après des heures d’essai, j’ai enfin trouvé une solution.

  1. Supprimer une application sur le site Web de Facebook (developers.facebook.com)
  2. Supprimez le fichier debug.keystore sous C:\Users\yourUserName\.Android
  3. Générez une nouvelle clé (en relançant votre application)
  4. Créez une nouvelle application sur developers.facebook.com et ajoutez la nouvelle clé de hachage
  5. Re-lancez votre application
  6. Succès!
40
Yenthe

Si votre connexion fonctionne sans installer l'application facebook et ne fonctionne pas lorsque l'application facebook est installée en raison d'une erreur "La clé de hachage ne correspond pas", procédez comme suit: 

1) Lancez votre application et essayez de vous connecter avec Facebook. Une boîte de dialogue s'ouvre et vous indique: "la clé n'a pas été trouvée dans la console développeur Facebook et affiche également la clé de hachage.

2) Notez cette clé de hachage.

3) Mettez-le dans votre console de développeur facebook où vous avez d'abord généré votre clé api et supprimez la clé de hachage avec new et save. Maintenant vous avez fini. Toute personne qui télécharge votre application, publiée avec le magasin de clés utilisé précédemment, peut se connecter à Facebook.

45
Narender Gusain

J'ai rencontré un problème similaire. La solution est étonnamment simple.

Le message d'erreur ressemble à ceci:

07-05 ...... Invalid key hash. The key hash sL1***************VY= does not match any stored key hashes. Configure your app key hashes at http://developers.facebook.com/apps/150*******778
07-05 ......     at com.facebook.login.LoginManager.onActivityResult(LoginManager.Java:191)

Connectez-vous simplement à https://developers.facebook.com , sélectionnez l'onglet "Paramètres" et ajoutez la clé de hachage "sL1 ************** VY =" à la liste des hachages de clés enregistrés dans le panneau Android.

27
Darsen Lu

J'ai fait face au même problème pendant le développement et j'avais besoin de la clé de hachage pour tester le partage sur Facebook, et tout en résolvant ce problème, je suis passé en revue quelques problèmes

1- La commande que facebook fournissait pour obtenir la clé de hachage en utilisant openSSL ne m'avait pas donné le bon hachage obtenu en extrayant la signature de Package info avec le code . Obtenir le hachage de la deuxième manière était correct.

2- Pour une raison quelconque, dans la documentation, ils vous disent d'aller dans les paramètres du développeur et d'ajouter la clé de hachage pour 'Exemple d'application' ici, j'ai pensé que chaque clé de hachage pour un développeur devrait être là, et ce fut mon erreur, chaque application a son champ de clés de hachage à ajouter, accédez à votre application/paramètres/Android.

enter image description here

eh bien, c’est ça .. et pour les enregistrements que j’ai utilisés openssl-0.9.8k_X64 sur un bit Windows 7 x64 Et il ne fait que générer un hachage erroné Je ne sais pas pourquoi

J'ai utilisé ce code pour obtenir le hachage:

private void printKeyHash() {
    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo("YOUR PACKAGE NAME", 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) {
        Log.e("KeyHash:", e.toString());
    } catch (NoSuchAlgorithmException e) {
        Log.e("KeyHash:", e.toString());
    }
}

mais veillez à ce que cela n’imprime pas également dans les journaux le keyhash correct, du moins sur mon périphérique et ma machine, lors du débogage, dans une montre, il affiche le hachage correct juste avant d’imprimer les journaux, mais dans les journaux, il affiche un autre hachage et le premier était le bon.

quoi qu'il en soit, vous pouvez également utiliser une commande ou Eclipse pour afficher la séquence hexadécimale SHA de votre clé et la convertir en base 64 en ligne. Certains sites Web peuvent vous aider http://tomeko.net/online_tools /hex_to_base64.php?lang=fr

Bonne chance 

22
Bashar Ali Labadi

L’ajout de clés SHA1 d’Eclipse/keytool ne m’a aidé que lors de la création de l’application sur le FB, puis après la reconstruction, j’obtenais toujours l’erreur OP.

Ce qui a résolu mon problème, c’est d’ajouter la clé dans le message d’erreur aux paramètres du tableau de bord de Facebook.

16
Peter File

C'est un cas qui aurait pu se produire et ce qui a résolu mon erreur:

Dans le https://developers.facebook.com/quickstarts après avoir exécuté 

OSX/Linux:

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

Les fenêtres:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.Android\debug.keystore | openssl sha1 -binary | openssl base64

Lorsque vous avez demandé à Enter keystore password:que vous avez peut-être saisi un mot de passe incorrect, le mot de passe par défaut est " Android ". Taper un autre mot de passe vous donnera une clé de hachage différente/incorrecte. Collez la clé de hachage correcte dans le champ Key Hashes de votre page app

Cela a résolu mon problème, espérons que cela aidera quiconque a commis cette erreur particulière que j'ai commise

11
Kewal Shah

J'ai ce problème depuis deux mois maintenant. Mes hachages de clés ont été jusqu'à 9. 9. Aujourd'hui, j'ai finalement trouvé la solution simple:

ÉTAPE 1:

Installez le sdk facebook que vous avez téléchargé à partir de la page développeur facebook sur votre téléphone. N'installez pas l'application facebook normale. Assurez-vous que vous pouvez vous connecter à Facebook. Puis déconnectez-vous.

ÉTAPE 2: 

Exportez votre application avec votre clé de version finale sous forme d'apk, comme vous le feriez lorsque vous la téléchargiez sur le PlayStore. 

ÉTAPE 3:

Mettez le fichier Apk sur votre téléphone via un câble USB ou une clé USB. 

ÉTAPE 4: 

Installez votre application à l'aide d'un gestionnaire de fichiers: Par exemple https://play.google.com/store/apps/details?id=com.rhmsoft.fm

ETAPE 5:

Lancez votre application et essayez de vous connecter avec Facebook. Une boîte de dialogue s'ouvre et vous indique: "la clé n'a pas été trouvée dans la console développeur Facebook.

ETAPE 6:

Notez la clé.

ETAPE 7:

Mettez-le dans votre console de développeur facebook et enregistrez. Maintenant vous avez terminé . Toute personne qui télécharge votre application, publiée avec un magasin de clés utilisé antérieurement, peut se connecter à Facebook.

Prendre plaisir

7
Sakramento

C'est fou mais ça marche

Vraiment problème à cause de vous compte facebook privé obtenu cette application et la clé de hachage de ce compte ne est pas comparable

Mais vous ne devez pas faire face à cette erreur avec un utilisateur réel. Mais je ne suis pas sûr

Finalement, suivez la prochaine étape: 

  1. Accédez à votre compte facebook privé auquel vous essayez de vous connecter
  2. Puis cliquez sur Plus dans le répertoire de l'application

 enter image description here

  1. Cliquez sur Paramètres

 enter image description here

Et puis cliquez en croix

 enter image description here

Et maintenant, vous pouvez vous connecter avec Facebook. Mais la prochaine fois, si vous vous déconnectez et que vous essayez de vous reconnecter, vous êtes confronté au même problème ...

C'est aussi bizarre ...

Mais je ne pense pas que Facebook ne soit pas au courant ... 

6
  1. Vérifiez la valeur de hachage de votre clé. 
  2. Désinstallez l'application Facebook de votre téléphone. 
  3. Puis réessayez avec le SDK. 

Cela a résolu mon problème.

5
Rezaul Karim

J'ai le même problème. J'ai trouvé que j'avais mal utilisé le hashkey. keytool a imprimé une mauvaise hashkey parce que j'exécute une commande avec un faux alias.
S'il vous plaît vérifier votre commande à nouveau.Il va résoudre votre problème

keytool -exportcert -alias "test fb sdk" -storepass Android -keypass Android -keystore "C:\keystore.keystore" | openssl sha1 -binary | openssl base64
3
Leo Nguyen

L'utilisation du magasin de clés Debug, y compris le debug.keystore d'Android présent dans le dossier .Android, générait un problème étrange. la connexion à l'aide du bouton de connexion à Facebook sur l'application Android se déroulerait parfaitement comme vous le souhaitiez pour la première fois. Mais à chaque fois que je me déconnectais et que j'essayais de me connecter, une erreur apparaissait: «Cette application n'a pas de clé de hachage Android configurée. S'il vous plaît aller à http: // .... 

Création d'un magasin de clés à l'aide de la commande keytool (keytool -genkey -v -keystore my-release-key.keystore -alias nom_alias -keyalg RSA -sigalg SHA1withRSA -keysize 2048 -validity 10000) et de placer ce keystore dans le dossier parent le plus élevé de mes projets et de créer un L'entrée suivante dans le fichier build.gradle de projets a résolu le problème:

 signingConfigs {
        release {
            storeFile file("my-release-key.keystore")
            storePassword "passpass"
            keyAlias "alias_name"
            keyPassword "passpass"
        }    }

Notez que vous utilisez toujours la méthode suivante dans onCreate () de votre activité Android pour obtenir la valeur de hachage de la clé (pour vous inscrire sur le site developer.facebook.com de votre application) au lieu d'utiliser la ligne de commande pour générer la valeur de hachage en tant que ligne de commande. certains casés peuvent mettre un mauvais hash de la clé:

    public  void showHashKey(Context context) {
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo("com.superreceptionist",
                    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("KeyHash:", sign);
                //  Toast.makeText(getApplicationContext(),sign,     Toast.LENGTH_LONG).show();
            }
            Log.d("KeyHash:", "****------------***");
        } catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
e.printStackTrace();
        }
    }
1
Sandeep.R

J'ai un problème similaire. Après avoir signé et publié mon application sur le Google PlayStore, il semble que le hachage ait changé. J'ai ajouté le nouveau hachage (mentionné ci-dessus) dans Facebook, qui a été envoyé par messagerie au hachage de clé de mon application sur developers.facebook.com/app//settings. Maintenant cela fonctionne à nouveau.

1
Ramon

Vérifiez votre google-services.json. Peut-être est-ce différent. Téléchargez votre dernier fichier google-services.json, puis lancez l'application. J'espère que ça aide.

0
Shubham Gupta

"Activé Single Sign On pour votre application" c'est pourquoi il ne fonctionne qu'une fois. s'il vous plaît aller à developer.facebook et vérifiez settings.it travail pour moi

0
kshitij