【发布时间】:2013-02-25 13:17:40
【问题描述】:
有一项任务是为服务器端访问令牌提供多个权限(多个读取和发布)。在 3.0 版中,有 2 种单独的会话打开方法:openForRead 和 openForPublish。
一开始应用程序要求读取权限:
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开发人员的设计工作?..还是我做错了什么?
【问题讨论】:
标签: android permissions facebook-android-sdk