Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请求Facebook SDK 4 iOS的附加权限_Facebook_Login_Sdk_Permissions - Fatal编程技术网

请求Facebook SDK 4 iOS的附加权限

请求Facebook SDK 4 iOS的附加权限,facebook,login,sdk,permissions,Facebook,Login,Sdk,Permissions,我有一个通过facebook登录的应用程序。当它登录时,我只要求“公共档案”、“用户朋友”和“电子邮件”权限。我知道我以后可以要求更多的许可,正如FB所说: “您的应用程序可以随时请求其他权限,即使在某人首次登录后也是如此。例如,“发布操作”权限允许您发布到某人的Facebook时间线。建议您仅在某人准备将故事发布到Facebook时才请求此权限。” 所以,当我要发布到用户的墙上时,我想请求“发布动作”。请告诉我如何使用Facebook SDK 4。大多数答案都与FBSession、active

我有一个通过facebook登录的应用程序。当它登录时,我只要求“公共档案”、“用户朋友”和“电子邮件”权限。我知道我以后可以要求更多的许可,正如FB所说:

“您的应用程序可以随时请求其他权限,即使在某人首次登录后也是如此。例如,“发布操作”权限允许您发布到某人的Facebook时间线。建议您仅在某人准备将故事发布到Facebook时才请求此权限。”


所以,当我要发布到用户的墙上时,我想请求“发布动作”。请告诉我如何使用Facebook SDK 4。大多数答案都与FBSession、activeSession、requestNewPublishPermissions等有关,但在最新的Facebook SDK(4.1.0)中,没有FBSession类。

对于Parse Developer,这可能是一个答案

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

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

您必须再次调用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
     }
 }];

但它再次向我展示了Safari web视图控制器。有没有办法在不显示safari web视图的情况下执行此操作?