9
votes

Parse Connexion via Facebook API 4.0 dans Android Studio

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

}


6 commentaires

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


5 Réponses :


4
votes

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


4 commentaires

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



2
votes

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


1 commentaires

Tous les paramètres sont corrects .. Facebook se connecte à simple mais lorsqu'il utilise la connexion via PASE qui ne fonctionne pas ..



1
votes

Essayons:

dans votre build.Gradle

Supprimer cette ligne Compiler FileTree (DIR: 'Libs', inclure: ['* .jar ']) , Ajoutez ensuite ceci: xxx

qui fonctionne parfaitement pour moi et avec ce cas: d


0 commentaires

6
votes

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:

  • Tout d'abord, je suis allé à Ce site Web et créé une nouvelle application.
  • J'ai téléchargé le Facebook SDK, j'ai fait les étapes 4 et 5 et j'ai ajouté mon nom de paquet et le nom de la classe par défaut LI>
  • J'ai ajouté la clé HASHES: LI> ul>

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


3 commentaires

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?



0
votes

Avez-vous ajouté une activité de Facebook dans votre manifeste? XXX


0 commentaires