【问题标题】:Facebook SDK 3.0 - additional permissionsFacebook SDK 3.0 - 附加权限
【发布时间】: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


    【解决方案1】:

    这个答案可能为时已晚。我遇到了类似的问题,适用于 Android 的 FB SDK 3.0。这是 SDK 中的一个错误,他们已在 3 月 20 日发布的 FB SDK 3.0.1 for Android 中修复了它。 change log 提到:

    Web 视图登录对话框包含请求新权限的场景的令牌信息。这样可以避免用户在每次会话请求新权限时都必须输入他们的登录凭据。

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

    【讨论】:

    • 嗯,更好的是,Facebook SDK 团队为开发人员提供了一种方法,这样我们就可以避免链接权限的东西。但是,无论如何,谢谢;)
    【解决方案2】:

    我发现如果用户没有在他们的 Android 设备上安装 Facebook 应用程序,那么每次请求他/她获得额外权限时都会出现登录屏幕。但是,如果用户确实在他们的设备上安装了 Facebook 应用程序,那么我发现他/她只需要通过单击是/否按钮来确认/取消确认其他权限。

    顺便说一句,我整理了一系列三篇简短的文章,解释如何打开 Facebook 会话、请求额外权限等等。 Here's第一个。

    【讨论】:

      猜你喜欢
      • 2013-03-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多