虽然登录应用程序显示身份验证失败,但按下登录按钮时失败,错误是访问令牌,而回调的注册工作正常,但在handlefacebookAccessToken中,其显示身份验证失败,并且该应用程序处于developer.facebook控制台上。
onCreate()方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView((int) R.layout.activity_login_in);
FacebookSdk.sdkInitialize(getApplicationContext());
facebookbutton=(LoginButton)findViewById(R.id.login_button);
//
callbackmanager =CallbackManager.Factory.create();
// facebookbutton.setReadPermissions("email", "public_profile");
facebookbutton.setReadPermissions("email", "public_profile");
facebookbutton.registerCallback(callbackmanager,new
FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// googleprogress =new ProgressDialog(loginIn.this);
// googleprogress.setMessage(pleasewait);
// googleprogress.show();
// googleprogress.setCanceledOnTouchOutside(false);
Toast.makeText(loginIn.this, LOGED_IN, Toast.LENGTH_SHORT).show();
String uid= loginResult.getAccessToken().getUserId();
String token= loginResult.getAccessToken().getToken();
Toast.makeText(loginIn.this, uid + ""+token, Toast.LENGTH_SHORT).show();
handleFacebookAccessToken(loginResult.getAccessToken());
}
@Override
public void onCancel() {
Toast.makeText(loginIn.this, LOGIN_CANCELLED, Toast.LENGTH_SHORT).show();
}
public void onError(FacebookException error) {
}
});
}
handleFacebookAccessToken
mauth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>()
{
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Toast.makeText(loginIn.this, "Successfully login", Toast.LENGTH_SHORT).show();
user = mauth.getCurrentUser();
String uid= user.getUid();
Bundle bundleverify =new Bundle();
bundleverify.putString("verify",uid);
Intent verificationintent =new Intent(loginIn.this,MainActivity.class);
verificationintent.putExtras(bundleverify);
startActivity(verificationintent);
} else {
Toast.makeText(loginIn.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
}
});
}
onActivityResult()
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackmanager.onActivityResult(requestCode,resultCode,data);
}