iOS Facebook SDK v4.1 - 如何根据需要设置权限
iOS Facebook SDK v4.1 - How to set permission as required
我在我的应用程序中使用 iOS FBSDK,它允许 Facebook 作为登录方式。我的应用程序将要求用户披露他们的年龄,我想使用 Facebook 的登录流程来强制执行这个要求。但是,我无法根据需要设置任何内容(默认情况下需要的 public 配置文件除外)。我想避免必须告诉用户在他们进入他们的帐户设置并打开它之前他们不能使用该应用程序。这是一种破坏性的用户体验,应用程序确实需要一定的权限才能运行。
我这样设置登录按钮的读取权限:
self.loginButton.readPermissions = @[@"public_profile", @"email", @"user_photos", @"user_birthday"];
看看这个:
这一切都可以吗?当我查看绑定到我自己的 Facebook 帐户的应用程序时,我看到一些应用程序(Tinder、Glassdoor 等)需要权限,所以我认为一定有办法做到这一点。
使用 Facebook OAuth 对话框时,无法根据需要标记特定权限。
您看到的行为差异很可能是由于您安装应用程序的时间以及这些应用程序使用的 Graph API 版本。 Graph API 1.0 没有提供人们撤销特定读取权限的能力,并且(我猜)当你安装这些应用程序时,它们的目标是 1.0。对于面向 Graph API 2.0 及更高版本的应用,人们可以撤销特定权限(public_profile 除外),并且应用需要准备好处理缺失的权限。
您看到的设置对话框反映了用于安装该特定应用程序的 Graph API 版本。 2014 年 4 月之后创建的任何 Facebook 应用程序 ID 都会自动以创建时有效的 Graph API 当前版本 (2.x) 为目标,并且先前存在的应用程序会更早迁移到 2.x今年。因此,今后人们在安装应用程序时始终可以拒绝 public_profile 以外的权限,但对于已安装的应用程序,他们的设置会反映安装应用程序时生效的版本。
我在我的应用程序中使用 iOS FBSDK,它允许 Facebook 作为登录方式。我的应用程序将要求用户披露他们的年龄,我想使用 Facebook 的登录流程来强制执行这个要求。但是,我无法根据需要设置任何内容(默认情况下需要的 public 配置文件除外)。我想避免必须告诉用户在他们进入他们的帐户设置并打开它之前他们不能使用该应用程序。这是一种破坏性的用户体验,应用程序确实需要一定的权限才能运行。
我这样设置登录按钮的读取权限:
self.loginButton.readPermissions = @[@"public_profile", @"email", @"user_photos", @"user_birthday"];
看看这个:
这一切都可以吗?当我查看绑定到我自己的 Facebook 帐户的应用程序时,我看到一些应用程序(Tinder、Glassdoor 等)需要权限,所以我认为一定有办法做到这一点。
使用 Facebook OAuth 对话框时,无法根据需要标记特定权限。
您看到的行为差异很可能是由于您安装应用程序的时间以及这些应用程序使用的 Graph API 版本。 Graph API 1.0 没有提供人们撤销特定读取权限的能力,并且(我猜)当你安装这些应用程序时,它们的目标是 1.0。对于面向 Graph API 2.0 及更高版本的应用,人们可以撤销特定权限(public_profile 除外),并且应用需要准备好处理缺失的权限。
您看到的设置对话框反映了用于安装该特定应用程序的 Graph API 版本。 2014 年 4 月之后创建的任何 Facebook 应用程序 ID 都会自动以创建时有效的 Graph API 当前版本 (2.x) 为目标,并且先前存在的应用程序会更早迁移到 2.x今年。因此,今后人们在安装应用程序时始终可以拒绝 public_profile 以外的权限,但对于已安装的应用程序,他们的设置会反映安装应用程序时生效的版本。