在我的应用程序中,当用户点击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);
}
答案 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));
}