Java Android:FirebaseAuth-来自Facebook的调试令牌响应失败
我正在尝试使用firebase为我的应用程序创建Facebook登录方法。我设置了我的Facebook应用程序和sdk。 登录Facebook工作正常。。问题是当Firebase尝试使用凭据登录时,身份验证失败。我还没有找到任何有效的解决方案。这是我的日志:Java Android:FirebaseAuth-来自Facebook的调试令牌响应失败,java,android,facebook,firebase-authentication,facebook-login,Java,Android,Facebook,Firebase Authentication,Facebook Login,我正在尝试使用firebase为我的应用程序创建Facebook登录方法。我设置了我的Facebook应用程序和sdk。 登录Facebook工作正常。。问题是当Firebase尝试使用凭据登录时,身份验证失败。我还没有找到任何有效的解决方案。这是我的日志: signInWithCredential:failure com.google.firebase.FirebaseExce
signInWithCredential:failure
com.google.firebase.FirebaseException: An internal error has occurred. [ Unsuccessful debug_token response from Facebook:{"error":{"message":"(#100) You must provide an app access token or a user access token that is an owner or developer of the app","type":"OAuthException","code":100,"fbtrace_id":"CnaYlxG66lv"}} ]
at com.google.android.gms.internal.zzdxm.zzao(Unknown Source)
at com.google.android.gms.internal.zzdwn.zza(Unknown Source)
at com.google.android.gms.internal.zzdxx.zzap(Unknown Source)
at com.google.android.gms.internal.zzdya.onFailure(Unknown Source)
at com.google.android.gms.internal.zzdxo.onTransact(Unknown Source)
at android.os.Binder.execTransact(Binder.java:573)
这是我的密码:
Facebook按钮和CallbackManager:
Firebase handleFacebookAccessToken:
Firebase控制台Facebook登录方法:
Facebook应用程序基本设置:
Facebook应用程序高级设置:
客户端OAuth设置:
密钥散列:
我想这就是一切,如果有什么别的事情,只要告诉我,我会更新我的答案,谢谢 尝试更新onClick函数中的函数。我测试了下面的方法并登录。我想我和firebase还有另外一个问题
this.fbLoginManager.registerCallback(this.callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
Log.v("Main", response.toString());
setProfileToView(object);
}
});
Bundle parameters = new Bundle();
parameters.putString(GraphRequest.FIELDS_PARAM, "id, name, email, gender, birthday, picture.type(large)");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
Toast.makeText(LoginActivity.this.getApplicationContext(), error.toString(), Toast.LENGTH_SHORT).show();
}
});
我已经设法解决了我的问题,出于某些原因,我禁用了我的旧Facebook帐户,但我必须创建一个新的登录应用程序,所以我在一个新的Facebook acc中这样做了,我从我的应用程序登录过程中获得了密钥哈希,我确保所有设置都正确,所以是的,它现在可以工作了。谢谢你拿到了a+1;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mCallbackManager.onActivityResult(requestCode, resultCode, data);
}
private void handleFacebookAccessToken(AccessToken token) {
Log.d(TAG, "handleFacebookAccessToken:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential)
.addOnCompleteListener(SignUp.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Log.d(TAG, "signInWithCredential:success");
Toast.makeText(SignUp.this,"Logged in", Toast.LENGTH_LONG).show();
} else {
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(SignUp.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
// ...
}
});
}
buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.2.0'
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
maven {
url "https://maven.google.com" // Google's Maven repository
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
this.fbLoginManager.registerCallback(this.callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
Log.v("Main", response.toString());
setProfileToView(object);
}
});
Bundle parameters = new Bundle();
parameters.putString(GraphRequest.FIELDS_PARAM, "id, name, email, gender, birthday, picture.type(large)");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
Toast.makeText(LoginActivity.this.getApplicationContext(), error.toString(), Toast.LENGTH_SHORT).show();
}
});