0

Je crée une méthode de connexion Facebook pour mon application Android. J'utilise mon bouton de connexion personnalisé. Cela fonctionne très bien lorsque l'application Facebook n'est pas installée et que je dois me connecter manuellement via l'interface qui apparaît après avoir appuyé sur le bouton de connexion. Le problème auquel je fais face est, cette méthode ne fonctionne pas correctement lorsque l'application Facebook est installée. Dans ce cas, quand je touche le bouton de connexion, il démarre ce chargeur circulaire noir et blanc avec la légende "Chargement" et ce chargeur continue pour toujours. Aucune connexion n'a lieu. Comment puis-je y remédier? Voici le code mis en œuvre.Impossible de se connecter via l'application Facebook dans Android

méthode Inside onCreate

callbackManager=CallbackManager.Factory.create(); 
    loginButton= (LoginButton)findViewById(R.id.login_button); 
    btnFBLogin= (TextView) findViewById(R.id.btnFBLogin); 
    btnFBLogin.setSelected(true); 
    btnFBLogin.startAnimation(animationButtonFadeIn); 
    btnFBLogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      progressDialog = new ProgressDialog(LoginActivity.this); 
      progressDialog.setMessage("Loading..."); 
      progressDialog.show(); 
      loginButton.performClick(); 
      loginButton.setPressed(true); 
      loginButton.invalidate(); 
      loginButton.registerCallback(callbackManager, mCallBack); 
      loginButton.setPressed(false); 
      loginButton.invalidate(); 
     } 
    }); 

intérieur autres méthodes

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     callbackManager.onActivityResult(requestCode, resultCode, data); 
    } 

private FacebookCallback<LoginResult> mCallBack = new FacebookCallback<LoginResult>() { 
    @Override 
    public void onSuccess(LoginResult loginResult) { 
     progressDialog.dismiss(); 
     GraphRequest request = GraphRequest.newMeRequest(
       loginResult.getAccessToken(), 
       new GraphRequest.GraphJSONObjectCallback() { 
        @Override 
        public void onCompleted(
          JSONObject object, 
          GraphResponse response) { 
         try { 
          btnFBLogin.setVisibility(View.GONE); 
          user = new User(); 

          facebook_id = object.getString("id").toString(); 
          user.uniqueID = facebook_id; 
          full_name = object.getString("name").toString(); 
          user.name = full_name; 
          try{ 
           email = object.getString("email").toString(); 
          }catch (Exception e){ 
           email = "email_not_provided"; 
          }finally { 
           user.email = email; 
          } 
          PrefUtils.setCurrentUser(user, LoginActivity.this); 
          userRecord(facebook_id, full_name, email, "fb", null); 
         }catch (Exception e){ 
          e.printStackTrace(); 
         } 
        } 
       }); 

     Bundle parameters = new Bundle(); 
     parameters.putString("fields", "id,name,email,gender, birthday"); 
     request.setParameters(parameters); 
     request.executeAsync(); 
    } 

    @Override 
    public void onCancel() { 
     progressDialog.dismiss(); 
    } 

    @Override 
    public void onError(FacebookException e) { 
     progressDialog.dismiss(); 
    } 
}; 

Répondre

1

Cela signifie que vous n'avez pas entré votre clé de hachage correctement.

Voir ce numéro: Android facebook login not working with installed Facebook app

+1

Merci, ça a marché ...! :) En fait, j'avais entré le hashkey correct que j'ai reçu de la classe singleton dans Android, mais il y avait une autre clé qui devait encore être ajouté à la console des développeurs facebook. J'ai obtenu cette clé sur le login facebook lui-même avec le message d'erreur, que j'ai ajouté à la console. – harshvardhan