通过Facebook登录并获得额外的share_item权限,我遇到了烦人的问题。 我的登录代码:
public void startFacebookLogin() {
Session localSession = Session.getActiveSession();
if ((!localSession.isOpened()) && (!localSession.isClosed())) {
Session.OpenRequest localOpenRequest = new Session.OpenRequest(this);
localOpenRequest.setCallback(this);
localOpenRequest.setDefaultAudience(SessionDefaultAudience.EVERYONE);
localOpenRequest.setPermissions("email", "share_item");
localSession.openForRead(localOpenRequest);
return;
}
Session.openActiveSession(this, true, this);
}
获取会话登录响应的代码:
@Override
public void call(Session session, SessionState state, Exception exception) {
onSessionStateChange(session, state, exception);
if(state == SessionState.OPENED) {
String facebookToken = session.getAccessToken();
processFacebookToken(facebookToken);
}
}
问题是当我第一次调用startFacebookLoging()时,metod调用中的状态是“CLOSED_LOGIN_FAILED”,异常是:
com.facebook.FacebookAuthorizationException:UnknownError:ApiException:无法提供share_item的说明
当第二次调用startFacebookLoing()时,Facebook SDK显示“询问权限对话框”,但只询问“basic_info”,在call()中的接受状态为“OPENED”后,无例外但是“email”和“权限” share_item“未附加到会话。我在Facebook SDK 3.6和3.8上测试过它。
任何想法有什么不对?我在谷歌尝试找到“UnknownError:ApiException:无法提供share_item的描述”,但没有任何有趣的结果。
答案 0 :(得分:0)
解决: 好的,问题解决了。优雅的Facebook开发人员回应我,share_item已被弃用,现在它不起作用(相反,你可以使用publish_stream或其他东西......)。但是Facebook的文档中没有任何关于此的信息,那就是为了获得良好的支持FB ......