请求额外的权限Facebook SDK 4 iOS

时间:2015-05-02 07:18:03

标签: facebook login sdk permissions

我有一个通过Facebook登录的应用程序。登录时,我只询问“public_profile”,“user_friends”和“email”权限。我知道我可以在稍后要求更多的许可,正如FB所说:

“即使有人第一次登录,您的应用也可以随时要求其他权限。例如,publish_actions权限允许您发布到某人的Facebook时间线。建议您仅在以下情况下请求此权限一个人准备将一个故事发布到Facebook。“

因此,当我即将发布到用户的墙上时,我想要求“publish_actions”。请告诉我如何使用Facebook SDK 4.大多数答案与FBSession,activeSession,requestNewPublishPermissions等相关,但在最新的Facebook SDK(4.1.0)中,没有FBSession类。

2 个答案:

答案 0 :(得分:9)

您必须再次调用login方法才能请求其他权限。

FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logInWithPublishPermissions:@[@"publish_actions"]
                                  handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
 {
     if ([result.declinedPermissions containsObject:@"publish_actions"])
     {
         // permission denied
     }
     else
     {
         // do something
     }
 }];

答案 1 :(得分:2)

对于Parse Developer来说,它可以是一个答案。

PFFacebookUtils.linkUserInBackground(user, withPublishPermissions: ["publish_actions"], {
  (succeeded: Bool?, error: NSError?) -> Void in
  if succeeded {
    println("User now has read and publish permissions!")
  }
})

但我仍在寻找更通用的解决方案