Android Facebook SDK 3.0 donne «remote_app_id ne correspond pas à l’identifiant stocké» lors de la connexion

J’essaie de construire une application qui utilise Facebook SDK pour Android 3.0. Mais quand j’essaye d’appeler

Session.openActiveSession 

Cela me donne simplement un SessionState avec CLOSED_LOGIN_FAILED, et LogCat est:

 12-16 00:03:40.510: W/fb4a:fb:OrcaServiceQueue(4105): com.facebook.orca.protocol.base.ApiException: remote_app_id does not match stored id 

J’ai cherché StackOverflow avec “remote_app_id” et les résultats sont “Bundle ID” dans iOS, mais je ne sais pas ce que signifie “remote_app_id” dans Android. J’ai déjà défini le nom du package et le nom de l’activité dans les parameters de mon application Facebook. Je n’ai aucune idée de la raison de l’erreur.

Une autre erreur possible (qui est arrivée avec moi) est la suivante: configurer un “Key Hash” sur Facebook App Console et signer l’application Android à l’aide d’un autre fichier de clés.

Malheureusement, cela est dû au fait que le didacticiel de démarrage de Facebook induit cette erreur. Il dit que les développeurs Android doivent utiliser la clé de débogage Android par défaut dans vos exemples et n’expliquent pas que le hachage de clés doit être généré avec le même fichier de clés que vous allez signer.

Ma recommandation est de configurer deux hachages clés sur votre console facebook:

  1. clé de débogage Android par défaut:

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

  1. la clé de version de votre application:

keytool -exportcert -alias yourappreleasekeyalias -keystore ~ ​​/ .votre / chemin / release.keystore | openssl sha1 -binary | openssl base64

N’oubliez pas: vous ne pouvez pas publier une application signée avec la clé de débogage générée par les outils du SDK. Il n’est donc pas possible de publier une application en utilisant uniquement la clé de hachage générée à l’aide de la première ligne de commande précédente (comme le suggère le didacticiel de facebook).

Pour plus d’informations sur la signature de votre application, consultez la section Signature de votre application .

Une autre option consiste à imprimer le hash de clé envoyé à Facebook et à utiliser cette valeur.

Apportez les modifications suivantes à la méthode onCreate() dans votre activité principale:

 try { PackageInfo info = getPackageManager().getPackageInfo( "com.facebook.samples.loginhowto", PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures){ MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.d("KeyHash:", Base64.encodeToSsortingng(md.digest(), Base64.DEFAULT)); } } catch (NameNotFoundException e) { } catch (NoSuchAlgorithmException e) { } 

Remplacez com.facebook.samples.loginhowto par your own package name .

Cela a fonctionné pour moi!

J’ai résolu cette question. Le problème est que le “Key Hash” que j’ai généré en utilisant “keytool” était faux. Lorsque “keytool” demande un mot de passe, vous devez utiliser “android” (sans les guillemets). J’utilisais plutôt mon propre mot de passe. Quand j’ai changé mon mot de passe, le problème s’est envolé. J’espère que cela t’aides.

J’ai été piégé par de mauvais openssl, qui ont généré une mauvaise clé de hachage. J’ai utilisé openssl de http://gnuwin32.sourceforge.net/packages/openssl.htm qui a résolu le problème.

J’ai eu le même problème, a découvert que le openssl créait le mauvais sha1. téléchargé un nouveau et cela a fonctionné comme un charme.

Aussi, assurez-vous que vous entrez le hachage à la bonne place dans le portail de développement facebook. Modifier les parameters de l’application et sélectionnez Native Android App.

J’ai par erreur placé le hachage dans les exemples de parameters d’application.

Vous obtenez la clé de hachage avec la clé de débogage … Ce qui peut fonctionner si vous n’avez pas signé le package et exécuté l’application en mode débogage. Ce que vous devez faire est:

1) Allez dans le fichier manifeste et ajoutez-le à l’application Android: debuggable = “true”.

2) Maintenant, lancez votre application et surveillez le logcat.

3) Vous allez imprimer une nouvelle clé qui sera la clé correspondante avec x9SLcMXBlgly1f36PJuuc4a3YAc, la clé que vous avez maintenant a un = dans le dernier.

4) Enregistrez cette clé sur le site du développeur de facbook

Autre tour

Vous pouvez faire une autre chose Enregistrez simplement cette clé sur le site de développeurs facebook x9SLcMXBlgly1f36PJuuc4a3YAc =

Ajoutez simplement = à la clé affichée par l’application facebook.

vous avez terminé!! J’espère que ça va marcher.