Android Facebook session issue

♀尐吖头ヾ 提交于 2019-11-29 04:33:27

I too had same problem, but i solved with these lines. To my knowledge we cannot request a session for new permissions which is already opened.

Session session = new Session(this);
    Session.setActiveSession(session);
    session.openForRead(new Session.OpenRequest(this).setCallback(callback).setPermissions(Arrays.asList("your_permissions")));

I hope you already added below line in onActivityResult()

Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);

If the Session is neither opened nor closed, I think it is better to Session.openActiveSession()

This snipped is copied-pasted from the Facebook SDK sample project SessionLoginSample, LoginUsingActivityActivity#onClickLogin()

private void onClickLogin() {
    Session session = Session.getActiveSession();
    if (!session.isOpened() && !session.isClosed()) {
        session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
    } else {
        Session.openActiveSession(this, true, statusCallback);
    }
}

Note that Session#openActiveSession() also creates a Session under the hood, which is OK. From https://developers.facebook.com/docs/technical-guides/iossdk/session/#lifecycle:

Sessions can only be opened once. When a session is closed, it cannot be re-opened. Instead, a new session should be created. Typical apps will only require one active session at any time. The Facebook SDK provides static active session methods that take care of opening new session instances.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!