35 votes

Je reçois toujours Session state:CLOSED_LOGIN_FAILED, token:{AccessToken token:ACCESS_TOKEN_REMOVED dans facebook Android sdk3.0.

J'obtiens toujours Session state:CLOSED_LOGIN_FAILED, token:{AccessToken token:ACCESS_TOKEN_REMOVED dans facebook Android sdk3.0. Même lorsque j'exécute les exemples donnés par le sdk de facebook, il s'authentifie et ne redirige pas vers le flux suivant. il affiche lui-même la page précédente.

51voto

Karim Varela Points 2137

Pour une raison ou une autre, le hash généré par le keytool n'est pas le même que celui de mon application. C'est ce qui a fonctionné pour moi. Générer un hash en utilisant le code standard fourni par facebook :

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

Veillez à remplacer "your_package_name>" par le nom du paquet correspondant. Regardez logcat et récupérez le keyhash et entrez le dans les paramètres de votre application facebook.

7voto

Matt Accola Points 1163

Le paramètre ACCESS_TOKEN_REMOVED n'a rien à voir avec le problème. Il s'agit simplement du SDK de Facebook qui n'enregistre pas le jeton d'accès. Vous pouvez donc ignorer cette partie de l'erreur.

Deux éléments peuvent être à l'origine du problème CLOSED_LOGIN_FAILED :

  1. Vous avez saisi des informations d'identification incorrectes dans l'application native de Facebook.

  2. Le hachage de la clé Android entré dans les paramètres de votre application sur developers.facebook.com ne correspond pas au hachage de la clé de l'APK.

Pour résoudre le problème #1 Ouvrez l'application native Facebook et assurez-vous que vous êtes bien connecté et que vous pouvez accéder au contenu. Si vous avez saisi des informations d'identification incorrectes dans l'application native Facebook (peut-être avez-vous récemment changé votre mot de passe), le SDK Facebook essaiera à plusieurs reprises d'effectuer un SSO à l'aide de l'application native et renverra le message CLOSED_LOGIN_FAILED.

Pour résoudre le problème n°2, il suffit de suivre les instructions de la rubrique "Créer une application Facebook" sur cette page, https://developers.facebook.com/docs/getting-started/facebook-sdk-for-Android/3.0/ .

Les exemples fournis avec le SDK Facebook échoueront parce que la configuration de l'application pour les exemples d'application n'aura pas enregistré le hachage de votre clé de débogage. Vous trouverez des instructions pour résoudre ce problème dans la section "Run the Samples" (Exécuter les exemples) du même lien. Voici une citation :

En d'autres termes, toutes les applications Android que vous créerez seront signées. devrez enregistrer le hachage de la clé de chaque application auprès de Facebook pour d'authenticité, comme nous le verrons plus loin. [ ] pour les échantillons du SDK et les rendre rapidement opérationnels, vous pouvez ajouter le hash de votre clé à votre profil global de développeur Facebook.

5voto

J'ai eu la même erreur et j'avais oublié la ligne suivante dans onActivityResult de l'activité de démarrage :

Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);

Voici la méthode complète :

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case RESULT_CODE_IMPORT_FACEBOOK:
          //do stuff
          break;
    default:
          Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
          break;
    }
}

5voto

dtbarne Points 4066

J'ai eu un problème similaire - je recevais CLOSED_LOGIN_FAILED avec com.facebook.FacebookOperationCanceledException: User canceled operation et je n'allais certainement pas annuler l'opération.

Après avoir passé 7 à 8 heures à jouer avec chaque ligne du code de mon application, j'ai remarqué que ce paramètre était défini sur mon activité dans mon manifeste. Le fait de l'enlever a résolu le problème.

android:launchMode="singleInstance"

3voto

Sabo Points 308

Si vous utilisez l'application Facebook en mode bac à sable, assurez-vous que le compte que vous utilisez figure dans la liste des administrateurs ou développeurs autorisés.

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