0

J'essaie d'utiliser Facebook AccountKit dans mon application android.Pourquoi je reçois Facebook AccountKitError: 400: Une erreur de cohérence interne s'est produite: 406: Aucun jeton d'accès: impossible de récupérer le compte

Voici mon code:

loginPhoneNumber.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       phoneLogin(view); 
      } 
     }); 

    public void phoneLogin(final View view) { 
      final Intent intent = new Intent(getBaseContext(), AccountKitActivity.class); 
      AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = 
        new AccountKitConfiguration.AccountKitConfigurationBuilder(
          LoginType.PHONE, 
          AccountKitActivity.ResponseType.CODE); // or .ResponseType.TOKEN 
      // ... perform additional configuration ... 
      intent.putExtra(
        AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, 
        configurationBuilder.build()); 
      startActivityForResult(intent, APP_REQUEST_CODE); 
     } 

voici onActivityResult():

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     callbackManager.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == APP_REQUEST_CODE) { // confirm that this response matches your request 
      AccountKitLoginResult loginResult = data.getParcelableExtra(AccountKitLoginResult.RESULT_KEY); 
      String toastMessage; 
      if (loginResult.getError() != null) { 
       toastMessage = loginResult.getError().getErrorType().getMessage(); 
      } else if (loginResult.wasCancelled()) { 
       toastMessage = "Login Cancelled"; 
      } else { 
       if (loginResult.getAccessToken() != null) { 
        toastMessage = "Success:" + loginResult.getAccessToken().getAccountId(); 
       } else { 
        toastMessage = String.format(
          "Success: ", 
          loginResult.getAuthorizationCode()); 
       } 

       // If you have an authorization code, retrieve it from 
       // loginResult.getAuthorizationCode() 
       // and pass it to your server and exchange it for an access token. 

       // Success! Start your next activity... 
       Intent intent = new Intent(SignUpActivity.this, MainActivity.class); 
       startActivity(intent); 
      } 

      // Surface the result to your user in an appropriate way. 
      Toast.makeText(
        this, 
        toastMessage, 
        Toast.LENGTH_LONG) 
        .show(); 
     } 
    } 

Tout se passe bien au moment où je reçois le code de vérification par SMS et je tape ce code et MainActivity obtient ouvert le toast de succès apparaît.

Mais dans mon MainActivity, je me sers de ce code:

com.facebook.accountkit.AccessToken accessToken = AccountKit.getCurrentAccessToken(); 

     if (accessToken != null) { 
      //Handle Returning User 
      Toast.makeText(getBaseContext(), "Hello", Toast.LENGTH_SHORT).show(); 
     } else { 
      //Handle new or logged out user 
      Intent intent = new Intent(MainActivity.this, SignUpActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
      startActivity(intent); 
      Toast.makeText(getBaseContext(), "sent from 1", Toast.LENGTH_SHORT).show(); 
     } 

qui navigue revenir à l'écran SignUp si le accessToken est nul et c'est ce qui se passe me donner cette erreur: com.facebook.accountkit.internal.LoginManager: No access token: cannot retrieve account et cela est également obtenir imprimé out in logcat: AccountKitError: 400: An internal consistency error has occurred: 406: No access token: cannot retrieve account

Qu'est-ce qui ne va pas ici? Pourquoi suis-je incapable d'obtenir un accessToken ici?

Répondre

0

Si vous voulez utiliser le jeton d'accès dans le kit de compte, vous aurez envie de changer la configuration build utilisation AccountKitActivity.ResponseType.TOKEN et non AccountKitActivity.ResponseType.CODE