Если мы используем поведение по умолчанию для входа в систему с помощью maven SDK в Android, это указывает, что при входе в систему следует попытаться войти в систему с помощью приложения Facebook, и если это не сработает, вернитесь к веб-диалогу авторизации.Если приложение facebook отсутствует, веб-диалог авторизации показывает неожиданный ответ, когда приложение отправляется в фоновый режим, когда оно отображается.Аутентификация веб-диалога скрывается при возобновлении работы приложения.Эта функция вызывает проблемы, когда вход выполняется с использованием двухфакторной аутентификации.
Изменение LoginBehaviour на LoginBehavior WEB_VIEW_ONLY показывает диалоговое окно, которое не показывает это поведение и, следовательно, решает проблему. Но это не рекомендуется Facebook и т. Д.мой идентификатор приложения был деактивирован Facebook.
fb_login_button=findViewById(R.id.fb_login_button);
fb_login_button.setReadPermissions(Arrays.asList(
"public_profile","email"));
callbackManager = CallbackManager.Factory.create();
fb_login_button.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.d("_completed","Login Successful");
}
});
Bundle parameters = new Bundle();
// parameters.putString("fields", "id,first_name,middle_name,last_name,name,email,gender,picture.type(large)");
parameters.putString("fields", "id,first_name,middle_name,last_name,name,email,gender,picture.width(500).height(500)");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
Log.e("_error","Face->"+"cancelled");
}
@Override
public void onError(FacebookException error) {
Log.e("_error","Face->"+error);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
}
implementation 'com.facebook.android:facebook-login:[4,5)'
У кого-нибудь есть идеи, как решить эту проблему?Вся помощь оценена.