请求额外权限 Facebook SDK 4 iOS

Request additional permission Facebook SDK 4 iOS

我有一个通过 facebook 登录的应用程序。当它登录时,我只请求 "public_profile"、"user_friends" 和 "email" 权限。我知道稍后我可以请求更多许可,正如 FB 所说:

"Your app can ask for additional permissions at any time, even after a person logs in for the first time. For example, the publish_actions permission lets you post to a person's Facebook Timeline. It's recommended you ask for this permission only when a person is ready to publish a story to Facebook."

所以当我要post到用户墙的时候,我想问一下"publish_actions"。请告诉我如何使用 Facebook SDK 4 做到这一点。大多数答案与 FBSession、activeSession、requestNewPublishPermissions 等有关,但在最新的 Facebook SDK (4.1.0) 中,没有 FBSession class.

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

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

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

您必须再次调用登录方法来请求另一个权限。

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
     }
 }];