Mon code est.
private void facebook() { List<String> permissions = Arrays.asList("public_profile", "email"); ParseFacebookUtils.logInWithReadPermissionsInBackground(this, permissions, new LogInCallback() { @Override public void done(ParseUser user, ParseException err) { progressDialog.dismiss(); Log.e("Facebook", user + " " + err.getMessage()); if (user == null) { Log.e("MyApp", "Uh oh. The user cancelled the Facebook login."); } else if (user.isNew()) { Log.e("MyApp", "User signed up and logged in through Facebook!"); } else { userinfo(user); Log.e("MyApp", "User logged in through Facebook!"); } } }); }
5 Réponses :
N'oubliez pas d'initialiser votre classe ParsefacebookUtils dans votre classe d'application, car elle est présentée dans la DOCS:
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); ParseFacebookUtils.onActivityResult(requestCode, resultCode, data); }
Tout ce que j'ai dit, gentille trouvé.
Ce problème est confronté lorsque Facebook est mis à jour .. Befour Mise à jour, elle travaille correctement.
Avez-vous vérifié les hauts de la clé Facebook? Est-ce que tout va bien là-bas? Vérifiez également la clé API.
J'ai trouvé une solution mais il est Connectez-vous à Facebook le même problème est mon contenu dans l'analyse mais comment résoudre
Pas sûr mais cochez les paramètres de hachage de clé sur https://developers.facebook.com pour votre application. Vous devez avoir à la fois des hauts clés pour la sortie et la version de débogage définie dans la console de développeur d'applications. Il se peut que vous puissiez simplement définir le hachage de clés pour l'environnement de débogage. Pour plus, voir Définition d'une clé de déverrouillage Hash. J'espère que cela aide.
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); ParseFacebookUtils.onActivityResult(requestCode, resultCode, data); }
Tous les paramètres sont corrects .. Facebook se connecte à simple mais lorsqu'il utilise la connexion via PASE qui ne fonctionne pas ..
Essayons:
dans votre Supprimer cette ligne qui fonctionne parfaitement pour moi et avec ce cas: d p> p> build.Gradle code> p>
Compiler FileTree (DIR: 'Libs', inclure: ['* .jar ']) code>,
Ajoutez ensuite ceci: p>
Ce sont les étapes que j'ai suivies pour faire l'inscription / connexion / liaison des utilisateurs avec des parsuers, selon parse Documentation et quelques conseils que j'ai trouvés sur le Web. S'il vous plaît vérifier que vous n'avez pas manqué de pas parce que j'avais les mêmes problèmes avec vous et que je devais faire toutes les marches à nouveau:
Clé de développement: p>
CD C: \ Program Files \ Java \ jdk1.8.0_05 \ bin keytool -exporcert -alias androiddebugkey -keystore C: \ Utilisateurs \ 'Votre nom'Android \ Debug.KeyStore | C: \ openssl \ bin \ openssl SHA1 -Binary | C: \ openssl \ bin \ openssl base64 p> blockQuote>
Clé de libération: P>
CD C: \ Program Files \ Java \ jdk1.8.0_05 \ bin keytool -exporcert -alias 'Nom que vous avez donné comme alias' -keystore | C: \ openssl \ bin \ openssl SHA1 -Binary | C: \ openssl \ bin \ openssl base64 p> blockQuote>
- in parse.com à l'intérieur
Paramètres forts> et authentification strong>, j'ai ajouté dans Application Facebook forte> L'ID de l'application strong> qui était créé sur Facebook. Li> - selon Ceci , j'ai fait toutes les étapes jusqu'à En utilisant la connexion ou partager strong> (y compris ceci). LI>
- Je suis allé ici et j'ai ajouté ma clé de développement . li>
- dans les paramètres
forts> de l'application que j'ai créée sur Facebook, j'ai vérifié que dans le champ de hachage de clé, il y avait à la fois des clés de développement et de libération. Li> - J'ai utilisé le Didacticiel de la bonne réponse pour rendre mon application en direct. Li>
- J'ai téléchargé le dernier SDK de parse ( 1.9.1 strong>) de QuickStart parce que 1.8 Cela ne fonctionne pas. LI>
- J'ai ajouté le nouveau fichier .jar du SDK fort> SDK STRY> et le
parsefacebookUTILSV4-1.9.1 strong> à l'intérieur du dossier code> libs code> de mon projet et syncronisé la build.Gradle strong> fichier. Li> - J'ai ajouté cette ligne dans
strings.xml code>:
1421 ****** string> code> li> ul>
J'ai ajouté ceci dans mon
androidmanifest.xml code> interne Tag: p>
xxx pré> et ceci: p >
xxx pré>
in
build.gradle code> de l'application que j'ai ajouté à l'intérieur de l'Android en raison de certaines erreurs avec
diamant code> (i Je suis désolé, je ne me souviens pas de l'erreur exacte): p>
xxx pré> et j'ai changé la version SDK pour être des chiffres en raison d'une erreur de variables non définies: P>
Parse.initialize(this, "hoMaK", "wWV193mE"); FacebookSdk.sdkInitialize(getApplicationContext()); ParseFacebookUtils.initialize(getApplicationContext()); final List<String> permissions = Arrays.asList("public_profile", "email"); fb.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { proDialog.show(); ParseFacebookUtils.logInWithReadPermissionsInBackground(HomeActivity.this, permissions, new LogInCallback() { @Override public void done(final ParseUser user, ParseException err) { if (user == null) { Log.d("MyApp", "Uh oh. The user cancelled the Facebook login."); Toast.makeText(getApplicationContext(), "Log-out from Facebook and try again please!", Toast.LENGTH_SHORT).show(); ParseUser.logOut(); proDialog.hide(); } else if (user.isNew()) { Log.d("MyApp", "User signed up and logged in through Facebook!"); if (!ParseFacebookUtils.isLinked(user)) { ParseFacebookUtils.linkWithReadPermissionsInBackground(user, HomeActivity.this, permissions, new SaveCallback() { @Override public void done(ParseException ex) { if (ParseFacebookUtils.isLinked(user)) { Log.d("MyApp", "Woohoo, user logged in with Facebook!"); proDialog.hide(); } } }); } else{ Toast.makeText(getApplicationContext(), "You can change your personal data in Settings tab!", Toast.LENGTH_SHORT).show(); } } else { Log.d("MyApp", "User logged in through Facebook!"); if (!ParseFacebookUtils.isLinked(user)) { ParseFacebookUtils.linkWithReadPermissionsInBackground(user, HomeActivity.this, permissions, new SaveCallback() { @Override public void done(ParseException ex) { if (ParseFacebookUtils.isLinked(user)) { Log.d("MyApp", "Woohoo, user logged in with Facebook!"); proDialog.hide(); } } }); } else{ proDialog.hide(); } } } }); } });
Vous avez essayé au moins une fois pour vous connecter à Facebook et vous avez eu une erreur de Facebook sur les touches de hachage ou sur l'utilisateur et après cela, vous obtenez toujours un utilisateur null?
Lorsque je connecte le Facebook et la connexion, travaillez correctement. Mais lors de la connexion via PaysfaceBook, l'utilisateur est NULL dans l'heure de connexion.
Avez-vous essayé aussi de désinstaller votre application et de l'application Facebook et réessayez?
Avez-vous ajouté une activité de Facebook dans votre manifeste?
Maby L'utilisateur est null avant de passer à cette fonction. Pourriez-vous fournir le code où vous initialisez l'utilisateur?
L'utilisateur d'analyse est initialiser une classe d'application.
Ce que j'ai trouvé ici: parse.com/docs/android /API/com/parse/parseuser.html Il est indiqué "ParseUser () construit un nouveau parseUser sans données."
Ya je sais, mais l'analyse est fournie à Facebook Login en tant que nouvel utilisateur .. Et j'ai vu ce lien mais je n'ai pas trouvé ma réponse ..
J'ai trouvé une solution mais il est Connectez-vous à Facebook même problème est mon mais il se connecte à l'analyse mais comment résoudre
Essayons ma solution ici: Stackoverflow.com/a/29970253/3090526