facebook - 当用户点击取消按钮时从CLOSE_LOGIN_FAILED恢复

时间:2014-12-16 09:18:16

标签: android facebook login permissions

在我的应用程序中,当用户点击Facebook登录按钮时,Facebook会显示一个页面,要求他确认权限 - 除了public_profile之外,我还特别要求提供电子邮件权限。如果用户点击"取消"然后退出到主页面,然后会话状态变为CLOSED_LOGIN_FAILED。如果用户再次点击Facebook登录按钮,则会再次显示权限页面,但这次只显示" public_profile"。即使会话状态为CLOSED_LOGIN_FAILED,我怎样才能要求发送电子邮件?

这是我的代码:

if(!session.isOpened() && !session.isClosed()) {
        session.openForRead(new Session.OpenRequest(context).setCallback(statusCallback).setPermissions(Arrays.asList("email")));
    } 
    else {
        Session.openActiveSession(context, true, statusCallback);
    }

1 个答案:

答案 0 :(得分:0)

使用以下代码实现:

        if (session.isOpened()) {
        Session.openActiveSession(activity, true, statusCallback);
    } else if(session.getState().equals(SessionState.CREATED)) {
        session.openForRead(new Session.OpenRequest(activity).setCallback(statusCallback).setPermissions(READ_PERMISSIONS));
    }
    else { //deal with CLOSED_LOGIN_FAILED and all other session types
        session = new Session(activity);
        Session.setActiveSession(session);
        session.openForRead(new Session.OpenRequest(activity).setCallback(statusCallback).setPermissions(READ_PERMISSIONS));
    }