解析和额外的Facebook权限(iOS)

时间:2014-03-25 03:59:02

标签: ios objective-c facebook permissions parse-platform

在Parse(适用于iOS)中有两种Parse方法可以重新授权Facebook用户(以获得额外的权限):

  • reauthorizeUser:withPublishPermissions:audience:block:
  • reauthorizeUser:withPublishPermissions:audience:target:selector:

不幸的是,这两种方法都适用于publishPermissions。我很困惑,因为在初次登录后似乎无法添加额外的读取权限(即扩展配置文件权限)。

Facebook建议,在进行一般登录时(即在应用程序打开时),您只需要基本权限,然后根据需要请求扩展权限,以免吓跑用户。

因此,对于Parse和Facebook for iOS,这是否意味着我们需要在初次登录时询问我们可能需要的每一个读取权限?

总的来说,似乎Parse文档和框架似乎缺少很多Facebook在各种情况下登录的说明。我们被指示查看Facebook SDK,但是所有内容似乎都适用于FBSession,并且不清楚哪些方法被Parse取代,除了Parse之外还需要哪些方法。

例如,我有一个应用程序,用户可以在应用程序启动时通过FB登录到Parse,但不是必须的。如果他们登录,他们只会被要求提供基本权限,如FB所建议的那样。然后,如果用户尝试执行某些操作,则会要求他们获取该特定操作的权限。我有额外的读取权限需要为扩展的配置文件以及publish_actions授予。

在这种情况下,任何人都可以给我一些指导,或者指出我是一个非常彻底,最新的例子吗? Parse FB Scrumptious示例代码起初看起来很有希望,但它已经过时了。

谢谢!

1 个答案:

答案 0 :(得分:0)

显然,有多种方法可以做到这一点。我使用Parse for Android找到的最容易的就是这样:

   Collection<String> publishPermissions = Arrays.asList("publish_actions");
   ParseFacebookUtils.linkWithPublishPermissionsInBackground(user, myActivityOrFragment, publishPermissions, new SaveCallback() {...});

这意味着在登录后,您应该使用您的用户引用和新权限列表调用linkWithPublishPermissionsInBackground。它将打开一个新的Facebook窗口,询问该权限并将结果链接到您的用户。

我测试了这段代码并且它有效。但似乎Parse并不那么聪明,有些东西会自动完成而有些则不然。所以在那之后你需要调用类似的东西:

   ParseFacebookUtilities.linkInBackground(ParseUser, AccessToken)

要将其实际保存到服务器上的用户,否则,只有在应用程序运行时它才会起作用。