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?