Android Facebook SDK 3.0-其他权限

Android Facebook SDK 3.0-其他权限,android,permissions,facebook-android-sdk,Android,Permissions,Facebook Android Sdk,有一项任务要为具有多个权限(多个读取和发布)的服务器端访问令牌提供。在版本3.0中,有两种单独的会话打开方法:openForRead和openForPublish 开始时,应用程序请求读取权限: private void authorizeFacebook() { if (DEBUG) Log.d(TAG, "Facebook authorization"); Session session = Session.getActiveSession(); if

有一项任务要为具有多个权限(多个读取和发布)的服务器端访问令牌提供。在版本3.0中,有两种单独的会话打开方法: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设备上没有安装Facebook应用程序,那么每次请求额外权限时,都会出现登录屏幕。但是,如果用户确实在其设备上安装了Facebook应用程序,那么我发现他/她只需要单击“是/否”按钮确认/取消确认附加权限


顺便说一句,我已经整理了三篇短文,解释了如何打开Facebook会话、请求额外权限等等。第一个。

这个答案可能迟了。我有一个类似的问题,关于Android的FBSDK3.0。这是SDK中的一个bug,他们已经在3月20日发布的Android FB SDK 3.0.1中修复了它。报告提到:

“Web视图登录”对话框包含请求新权限的场景的令牌信息。这避免了每当请求会话的新权限时,用户必须输入其登录凭据


升级后重试。从中获取新的SDK

嗯,更好的是,Facebook SDK团队给开发者一种方法,这样我们就可以避免链接权限的东西。但是,无论如何,谢谢;)