有一项任务是为具有多个权限的服务器端访问权限(多个读取和发布)提供。在3.0版中,会话打开有两种单独的方法:openForRead和openForPublish。Facebook SDK 3.0 - 附加权限
在开始申请是要求读取权限:
private void authorizeFacebook() {
if (DEBUG)
Log.d(TAG, "Facebook authorization");
Session session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
session.openForRead(this.createReadRequest());
} else {
Session.openActiveSession(this, true, mFacebookSessionCallback);
}
}
但状态回调后,应用程序要求发布权限:
if (session.isOpened() && !session.getPermissions().contains("publish_stream")) {
if (DEBUG)
Log.d(TAG, "Facebook, Request additional permission: Publish Stream");
session.requestNewPublishPermissions(new NewPermissionsRequest(this, Arrays.asList("publish_stream")).setCallback(mFacebookSessionCallback).setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO));
并且在用户体验的一个巨大的问题,因为在额外的权限请求之后,会出现Facebook登录表单,并且用户必须再次输入凭据......它是否按照SDK开发人员的设计工作?..或者我做错了什么?
嗯,更好的是,Facebook SDK团队给开发者一种方法,所以我们可以避免链接权限的东西。但是,无论如何,谢谢;) – 2013-04-01 09:28:26