Dans l'une de mes applications, j'ai besoin d'obtenir des données de Facebook ... Je fais cela:
J'ai créé l' ID d'application . Il se connecte avec succès, mais après la déconnexion, je me connecte, puis il me donne:
Qu'est-ce que je fais mal? J'utilise le SDK Facebook ... J'ai installé Facebook sur mon téléphone ... Il fonctionne bien dans un émulateur, mais l'application Facebook intégrée n'est pas installée.
Voici mon code:
if (FB_APP_ID == null) {
Builder alertBuilder = new Builder(this);
alertBuilder.setTitle("Warning");
alertBuilder.setMessage("A Facebook Applicaton ID must be " +
"specified before running this example: see App.java");
alertBuilder.create().show();
}
// Initialize the dispatcher
Dispatcher dispatcher = new Dispatcher(this);
dispatcher.addHandler("login", LoginHandler.class);
dispatcher.addHandler("stream", StreamHandler.class);
dispatcher.addHandler("logout", LogoutHandler.class);
// If a session already exists, render the stream page
// immediately. Otherwise, render the login page.
Session session = Session.restore(this);
if (session != null) {
dispatcher.runHandler("stream");
}
else {
dispatcher.runHandler("login");
}
Réponses:
La clé de hachage générée est incorrecte. Vous pouvez obtenir la clé de hachage en deux étapes.
L'une se fait via une invite de commande. Un autre est le codage. La clé de hachage via une invite de commande fonctionne uniquement la première fois. Je ne connais pas la raison. J'ai également eu le même problème. Je l'ai donc essayé par programme.
Suivez ces étapes:
Collez le code suivant dans
oncreate()
.Modifiez sans faute "com.example.packagename" avec votre nom de package dans le codage ci-dessus (vous pouvez trouver votre nom de package dans le fichier manifeste Android).
Exécutez votre application. Accédez à l'activité où vous avez collé le code ci-dessus. Dans le fichier LogCat, recherchez "KeyHash". Vous pouvez trouver un hachage de clé. Copiez le hachage de clé et accédez à la page du tableau de bord de l'application Facebook. Accédez aux paramètres et entrez les détails comme dans l'image ci-dessous.
Une fois que vous avez terminé l'étape ci-dessus, relancez à nouveau l'application. Vous pouvez maintenant vous connecter à Facebook. Pour plus de détails sur le hachage de clé, consultez le lien .
Si vous ajoutez des informations erronées dans la page des paramètres, cela signifie que cela donnera une erreur. Utilisez donc les informations correctes. Et aussi si le public (autre que vous) doit utiliser votre application, cela signifie que vous devez activer l'autorisation (changez «oui» dans «État et révision» à côté du paramètre) .
la source
Si vous utilisez la signature de l'application Google Play:
Ouvrez la section de signature d'application dans la console Google Play et obtenez le hachage SHA-1 sous Certificat de signature d'application . Puis convertissez-le en Base64 , par exemple avec cet outil: Hexadécimal -> décodeur de chaîne base64
la source
echo YOUR_SHA1_CERTIFICATE_COPIED_FROM_GOOGLE_PLAY | sed s/\://g | xxd -r -p | base64
Si vous êtes confronté à ce problème, mettez cette clé dans votre developer.facebook.com :
Assurez-vous ensuite que votre application est en ligne sur developer.facebook.com .
Ce cercle vert indique que l'application est en direct:
Si ce n'est pas le cas, suivez ces deux étapes pour faire vivre votre application:
Étape 1 Accédez à votre application → paramètre → ajoutez l'e - mail de contact et appliquez Enregistrer les modifications.
Étape 2 Accédez à l' option Revue d'application et assurez-vous que cette bascule est Oui . J'ai ajouté une capture d'écran:
Remarque: Si vous souhaitez copier la clé de hachage, vérifiez la BlueServiceQueue dans LogCat .
la source
BlueServiceQueue
dans logcatJ'ai le même problème. J'étais sûr que c'était dû à une très petite faute et oui c'était le cas!
J'ai trouvé la solution:
Lors de la génération de la clé de hachage de débogage sur mon ordinateur, j'ai entré le mot de passe de mon système. Mais le mot de passe doit être le suivant -
Entrez le mot de passe du magasin de clés: "android". C'était le seul problème dans mon cas.
----- Pour générer un hachage de clé de débogage , utilisez cette commande -
Entrez le mot de passe du magasin de clés: 'android'
----- Pour générer le hachage de la touche Release , utilisez cette commande -
Fournissez votre mot de passe de fichier de clés après avoir exécuté cette commande.
la source
J'ai rencontré le même problème. J'ai fait une courte recherche sur les raisons possibles de ce comportement étrange et j'ai trouvé ce qui suit:
Lors de la première exécution d'une nouvelle application Facebook, elle permettra la connexion / connexion même si vous ne spécifiez aucun hachage de clé.
Pour moi, le tutoriel fourni par Facebook n'a pas généré le hachage de clé correct, car il donnait la mauvaise configuration . Lors de l'exécution:
assurez-vous de vérifier toutes les propriétés - la
HOMEPATH
, l'existence du fichier de clés, etc. Peut-être que vous devez également fournir un mot de passe.Ce qui a généré la bonne configuration est la solution proposée par @Mahendran .
De plus, si vous voyez l'erreur initialement publiée ( http://i.stack.imgur.com/58q3v.png ), le hachage de clé que vous voyez à l'écran est probablement le vrai. Si rien d'autre ne fonctionne, essayez de le saisir dans Facebook.
J'ai obtenu tous ces résultats avec: Windows 7 édition 64 bits, Android Studio 1.2.2, JDK 7.
la source
Selon Facebook Login pour Android , vous devez fournir la valeur de hachage de clé. Pour l'obtenir, vous aurez besoin de la clé utilisée pour signer votre demande.
la source
Vous devez créer deux hachages de clés, un pour le débogage et un pour la version.
Pour le hachage de clé de débogage :
Sous OS X, exécutez:
Sous Windows, exécutez:
Déboguer la source de hachage de clé
Pour le hachage de la touche Release :
Sous OS X, exécutez (remplacez ce qui est entre
<>
par vos valeurs) :Sous Windows, utilisez (remplacez ce qui est entre
<>
par vos valeurs) :Libérer la source de hachage des touches
la source
J'ai essayé toutes les réponses précédentes et rien n'a aidé mon cas avec mes clients!
Ensuite, mon client s'est souvenu qu'il avait installé l'application Facebook sur son appareil. Après l'avoir retiré. la connexion a parfaitement fonctionné.
La clé de hachage a été modifiée et j'ai remplacé les anciennes clés de hachage de Facebook Developers Console par la clé de l'erreur (comme suggéré ci-dessus), et cela fonctionne!
L'application Facebook elle-même pourrait être le problème, il vaut donc mieux le comprendre sur un appareil avec l'application Facebook installée et sur un appareil avec l'application Facebook non installée et gérer les deux cas ...
la source
Voici comment j'ai résolu ce problème:
Vous devez d'abord obtenir la valeur SHA-1. Pour cela, il existe deux façons.
Pour obtenir la valeur SHA-1 dans Android Studio.
OU
Pour obtenir la valeur SHA-1 à partir du fichier de clés .
Copiez la valeur SHA-1 dans votre presse-papiers comme ceci:
Et ouvrez Hexadecimal -> Base64 string decoder pour convertir votre valeur SHA-1 en Base64.
C'est ce dont Facebook a besoin.
Obtenez le hachage généré "******************** =" et copiez le hachage de clé dans l'application Facebook.
la source
J'avais le même problème. Connectez-vous d'abord, très bien, mais ensuite, un hachage de clé non valide.
Le SDK Facebook pour Unity obtient le hachage de clé incorrect. Il obtient la clé de "C: \ Users \" votre utilisateur ".android \ debug.keystore" et, dans un monde parfait, il devrait l'obtenir du magasin de clés que vous avez créé dans votre projet. C'est pourquoi il vous indique que le hachage de clé n'est pas enregistré.
Comme suggéré par Madi , vous pouvez suivre les étapes de ce lien pour trouver la bonne clé. Assurez-vous simplement de les pointer vers le magasin de clés à l'intérieur de votre projet. Sinon, vous n'obtiendrez pas la bonne clé.
la source
Le code suivant vous donnera votre hachage pour Facebook, mais vous devez suivre ces étapes afin d'obtenir le hachage candidat à la sortie.
Copiez et collez ce code dans votre activité principale
Générez un fichier APK signé .
https://developers.facebook.com/apps
. C'est sous les paramètres.la source
Après une longue recherche, nous avons trouvé une solution.
Nous avions défini des autorisations comme:
Cela a fonctionné pour la première fois, mais lorsque nous nous sommes reconnectés à Facebook, cela a donné l' erreur de hachage non valide .
La solution simple était de changer la ligne ci-dessus en:
Et cela a fonctionné comme un bonheur!
Facebook doit renvoyer l'exception correcte au lieu de l'erreur de clé de hachage invalide trompeuse.
la source
Après tant d'épreuves, je suis tombé sur une solution à cela. J'ai généré et ajouté des clés de débogage et de libération à la console des développeurs Facebook et j'ai toujours eu l'erreur.
La seule solution qui a fonctionné pour moi a été de désinstaller le programme OpenSSL de Google et de le télécharger depuis Win32 / Win64 OpenSSL Installer pour Windows
Cela fonctionne vraiment comme par magie.
la source
Même si cette question a été répondue de nombreuses façons utiles, je voulais juste ajouter que lorsque j'ai suivi la réponse de Rafal Maleks (en utilisant les touches de hachage sur la console Google Play), je n'ai pas pu utiliser la clé SHA1 de signature d'application, j'ai quand même obtenu le générique erreur de Facebook. Au lieu de cela, j'avais besoin d'utiliser l'empreinte digitale du certificat SHA-1 de la partie Télécharger le certificat (juste en dessous de la partie Signature de l'application sur la console Google Play). Même processus sinon;
Copiez l'empreinte du certificat SHA-1 à partir de la section Télécharger un certificat dans la console Google Play
Convertissez le SHA-1 en utilisant: http://tomeko.net/online_tools/hex_to_base64.php et copiez la sortie (base64)
Collez-le dans l'entrée Key Hashes sur developer.facebook.com et enregistrez les modifications.
Espérons que cette réponse ne soit pas redondante et aidera quelqu'un qui ne peut pas le faire fonctionner avec le certificat de signature d'application.
Maintenant, la connexion Facebook fonctionne dans mon application en mode débogage et en version.
la source
Collez le code suivant dans votre méthode OnCreate:
Modifiez simplement le nom du package. Accédez ensuite à votre fichier LogCat et sélectionnez Recherche de débogage ici. Ensuite, vous trouverez la clé de hachage. Copiez maintenant cette clé de hachage, puis accédez au site developer.facebook.app_id, modifiez votre clé de hachage et appuyez sur Save. Exécutez à nouveau votre projet Android. Je pense que le problème sera résolu.
la source
Cela peut aider quelqu'un avec le même problème.
Générez le hachage de clé en utilisant le code ci-dessous
Comment utiliser keytool
Collez-le dans le champ requis dans le développeur Facebook
Dans Android Studio, menu Fichier → Structure du projet
Ajoutez des paramètres de signature.
Sélectionnez les saveurs
Sélectionnez la configuration de signature que nous avons créée.
Sélectionnez le type de construction
Sélectionnez la variante de construction et construisez-la
la source
J'ai eu le même problème lorsque je déboguais mon application. J'ai réécrit le hachage que vous avez barré dans l'image jointe (celle qui, selon Facebook, n'est pas valide) et l'ai ajoutée dans la console des développeurs de Facebook pour hacher les clés. Faites juste attention aux fautes de frappe.
Cette solution ressemble plus à une solution de contournement simple qu'à une solution appropriée.
la source
Si vous tapez manuellement le clavier (par exemple du mobile vers le tableau de bord Facebook), assurez-vous de faire la différence entre le petit L et le grand I.
la source
la source
Ce que Facebook a utilisé n'est pas le mot de passe et l'alias par défaut pour le débogage. Vous devez le changer après et cela fonctionnera.
Si vous n'avez rien changé avec le mot de passe par défaut, il devrait être "android" .
Vous pouvez également le configurer dans le fichier build.gradle. Mais le même mot de passe d'alias doit être utilisé pour générer le hachage:
la source
Voici beaucoup de bonnes réponses. Juste une chose:
Collez le hachage reçu dans Application → Paramètres → Principal , pas via le didacticiel de démarrage rapide.
la source
J'ai eu le même problème.
Assurez-vous de créer le fichier APK avec le même appareil qui a généré la clé de hachage qui est stockée dans la section des développeurs Facebook.
la source
J'ai corrigé cela en ajoutant ce qui suit dans
MainApplication.onCreate
:J'ai ensuite téléchargé ceci sur la console développeur de Google, puis téléchargé le dérivé APK qui, pour une raison quelconque, a un hachage de clé totalement différent.
J'ai ensuite utilisé LogCat pour déterminer le nouveau hachage de clé et l'ai ajouté Facebook comme d'autres utilisateurs l'ont souligné.
la source
Si vous générez des hachages de libération, assurez-vous de saisir le mot de passe réel de votre keystore et non "android".
C'était mon problème. La version de débogage fonctionnait, mais pas la version APK.
la source
Utilisez le code ci-dessous dans la méthode onCreate () de votre activité:
Exécutez ce code. Cela générera la clé de hachage. Copiez ce KeyHash dans le paramètre d'application Facebook et enregistrez les modifications. Connectez-vous ensuite à votre application. Cela fonctionnera parfaitement à l'avenir également.
la source