Я работаю над социальным входом (войдите через Google и Facebook).
Вход через Google работает нормально.Но я сталкиваюсь с проблемой при входе в Facebook.
Когда загружается фрагмент входа в систему, он автоматически вызывает фрагмент входа в систему, регистрируется как обратный вызов без нажатия кнопки «Прослушивание» на кнопке facebooklogin и прямой переход к активности профиля.
НоЯ хочу, чтобы когда я нажимал кнопку facebooklogin, а затем переходил к учетным данным для входа после подтверждения учетной записи, я мог просматривать профиль.
Когда я выхожу из системы, кнопка входа в систему также перенаправляет на профиль деятельности.Как я могу обработать код запроса Google и Facebook?
Вот мой код:
LoginManager.getInstance().logInWithReadPermissions(this,Arrays.asList("email"));
facebookLogin.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
Log.v("LoginActivity", response.toString());
Log.v("LoginObject", object.toString());
try {
userId = object.getString("id");
useremail = object.getString("email");
username = object.getString("name");
login(useremail,userId,username,false,true);
Log.e("email",useremail);
Log.e("name",username);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,gender,birthday");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
Log.e("Cancel","cancel");
}
@Override
public void onError(FacebookException error) {
Log.e("Error",error.toString());
}
});
А вот метод для обработчика результата действия:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode,resultCode,data);
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQ_CODE){
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleResult(result);
}
}