Сессия.openActiveSession только звонки открытие в Facebook Android SDK


Я Facebook пытаюсь войти в систему с помощью Facebook Android SDK, однако статус обратного вызова срабатывает только один раз с состоянием сеанса OPENING. После этого появляется действие входа в Facebook без содержимого (я знаю, что это действие, так как оно имеет заголовок, который я установил для title_facebook_login в строках.xml) на краткий миг и исчезает в течение секунды. Никакой другой обратный вызов не срабатывает, никаких исключений, никаких сбоев. Он просто ждет вечно в моем первоначальном действии. Вот мой код:

Session.openActiveSession(parent, true, new Session.StatusCallback() {
        @Override
        public void call(Session session, SessionState state, Exception exception) {
            if(state == SessionState.OPENED){
                String accessToken = session.getAccessToken();
            }
        }
    });

Почему бы и нет ответный огонь для SessionState.OPENED (или созданный, или даже закрытый), но только открывающийся?

1 4

1 ответ:

Вам нужно вызвать onActivityResult

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        uiHelper.onActivityResult(requestCode, resultCode, data);
    }

Итак, когда вход выполнен . Он приходит к той же активности и вызывает состояние обратного вызова с состояние сеанса открыто

Инициализировать UiLifecycleHelper

private UiLifecycleHelper uiHelper;

В oncreate нужно вызвать перед setContentView

uiHelper = new UiLifecycleHelper(this, statusCallback);
        uiHelper.onCreate(savedInstanceState);

И нужно поддерживать сеанс в

    @Override
    protected void onResume() {
        super.onResume();
        uiHelper.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        uiHelper.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        uiHelper.onDestroy();
    }