Я пытаюсь включить вход в Facebook на свое приложение для Android. Но несмотря на то, что я следовал за документами в Firebase и Facebook, я все еще не мог сделать это. Когда я нажимаю кнопку входа, Facebook выдает мне следующую ошибку:
com.google.firebase.auth.FirebaseAuthInvalidCredentialsException: предоставленные идентификационные данные неверны или устарели. [Неудачный ответ debug_token от Facebook: {"error": {"message": "Недопустимая подпись токена доступа OAuth.", "Type": "OAuthException", "code": 190, "fbtrace_id": "ENYy8qUQd + C"} }]
Я зарегистрировал developers.facebook, выполнил мой App ID и App Secret, чтобы запустить часть аутентификации. После того, как я включил свой keyhash и действительный URI перенаправления oAuth, все еще не могу преодолеть эту проблему. Вот мои коды в андроид;
в процессе создания;
mCallbackManager = CallbackManager.Factory.create();
loginButton = findViewById(R.id.facebook_login);
loginButton.setReadPermissions("email");
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
signFb();
}
});
После создания у меня есть этот метод для registerCallback.
private void signFb()
{
loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
handleFacebookAccessToken(loginResult.getAccessToken());
}
@Override
public void onCancel() {
Log.d("aa", "facebook:onCancel");
// ...
}
@Override
public void onError(FacebookException error) {
Log.d("aa", "facebook:onError", error);
Log.d("ere", error.toString());
}
});
}
private void handleFacebookAccessToken(AccessToken token) {
Log.d("asdfgb", "handleFacebookAccessToken:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
FirebaseUser user = mAuth.getCurrentUser();
Log.d("esgfsgdvcxz ", "onComplete: ASFDSGBHSF");
if(user != null) {
Intent intent = new Intent(ActivityLogin.this, MainFragmentActivity.class);
startActivity(intent);
finish();
return;
}
} else {
// If sign in fails, display a message to the user.
Log.w("asd", "signInWithCredential:failure", task.getException());
}
// ...
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Pass the activity result back to the Facebook SDK
mCallbackManager.onActivityResult(requestCode, resultCode, data);
}
спасибо. Я не думаю, что проблема в коде, хотя.
Потому что фрагмент Facebook подходит, и я могу нажать продолжить. Но после этого я не могу продолжать.