2

我的情况如下:

  1. 起初,用户通过请求读取权限user_friendsemail. 我正在使用openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent方法登录。所有相关的用户数据和有关用户登录的FB朋友的信息都已成功处理
  2. publish_actions然后,当用户点击按钮时,需要请求发布权限。我已经读过该reauthorizeWithPublishPermissions方法已被弃用,因此我尝试了推荐的requestNewPublishPermissions:defaultAudience:completionHandler:方法,但最终得到了永久错误消息:

FBSDKLog:FBSession:发布或管理权限的权限请求包含意外读取权限

那么,我做错了什么?我应该注销然后通过仅请求发布权限再次登录吗?或者我应该在应用程序仪表板上设置一些额外的参数?由于我的应用程序已经在 AppStore 上,我是否应该以某种方式显式切换到沙盒?(我知道由于请求publish_actions许可,我的应用程序的下一个版本必须由 FB 审查。)

4

1 回答 1

0

请求权限后使用以下代码。

     if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]) {
         // TODO: publish content.

     } else {
         FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
         [loginManager logInWithPublishPermissions:@[@"publish_actions"]
                                fromViewController:self
                                           handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
                                               //TODO: process error or result.


                                           }];
     }
于 2017-06-08T09:12:46.787 回答