iOS Facebook sdk - 无法获得发布权限和发布状态

时间:2014-06-12 16:17:12

标签: ios facebook facebook-graph-api permissions

我一直关注Facebook的指南并试图通过我的iOS应用程序更新状态。在尝试将我的状态更新到我的时间线时,我检查了我是否拥有发布权限,并且如果以下代码不存在则请求它:

GraphViewController.m中的

代码:

- (IBAction)postClicked:(id)sender {

if([self.status_input isFirstResponder])
    [self.status_input resignFirstResponder];

if ([FBSession.activeSession.permissions
     indexOfObject:@"publish_actions"] == NSNotFound) {
    // No permissions found in session, ask for it
    NSLog(@"No permission");

    [FBSession.activeSession
     requestNewPublishPermissions:
     [NSArray arrayWithObject:@"publish_actions"]
     defaultAudience:FBSessionDefaultAudienceFriends
     completionHandler:^(FBSession *session, NSError *error) {
         if (!error) {
             // If permissions granted, publish the story
             [self postStatusWithGraphAPI];
         }
     }];
} else {
    // If permissions present, publish the story
    [self postStatusWithGraphAPI];
} 

}

方法postStatusWithGraphAPI:

- (void) postStatusWithGraphAPI{

[FBRequestConnection startForPostStatusUpdate:@"User-generated status update."
                            completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                                if (!error) {
                                    // Status update posted successfully to Facebook
                                    NSLog(@"result: %@", result);
                                } else {
                                    // An error occurred, we need to handle the error
                                    // See: https://developers.facebook.com/docs/ios/errors
                                    NSLog(@"%@", error.description);
                                }
                            }];

}

此视图控制器不处理应用程序的facebook登录,该登录在另一个视图控制器(即MyViewController)中处理。简洁地说,流程就像:

  1. 在View_A(MyViewController)中执行Facebook登录
  2. 按View_A中的特定按钮,调用push segue到View_B(这是包含上面代码段的视图)
  3. 用户按View_B中的更新状态按钮
  4. 在我按下更新状态按钮后,由于我没有发布权限,应用程序应该让我向该应用授予额外权限。但是,要求获得其他权限,而是发出“您已经授权此应用程序”消息,并显示“确定”和“取消”选项。

    在我按下“确定”后,我仍然没有发布权限,因此无法发布状态,发生以下错误消息:

      

    2014-06-12 19:11:18.545 TestingApp [4130:60b] FBSDKLog:现有的状态更改处理程序已分配给会话并将被覆盖。

         

    2014-06-12 19:11:18.548 TestingApp [4130:60b]会议开幕

         

    2014-06-12 19:11:20.822 TestingApp [4130:60b]未经许可   2014-06-12 19:11:23.186 TestingApp [4130:60b] FBSDKLog:现有的状态更改处理程序已分配给会话并将被覆盖。

         

    2014-06-12 19:11:23.640 TestingApp [4130:60b] Error Domain = com.facebook.sdk Code = 5“无法完成操作。(com.facebook.sdk error 5.)” UserInfo = 0x8c56320

         

    {com.facebook.sdk:HTTPStatusCode = 403,com.facebook.sdk:ParsedJSONResponseKey = {      body = {          error = {              代码= 200;              message =“(#200)用户尚未授权应用程序执行此>动作”;              type = OAuthException;          };      };      code = 403;

         

    },com.facebook.sdk:ErrorSessionKey =,   expirationDate:2014-08-11 11:11:19 +0000,refreshDate:2014-06-12 11:11:23 +0000,   attemptsRefreshDate:0001-12-30 00:00:00 +0000,权限:(      安装,      “public_profile”      电子邮件,      “user_friends”   )>}

0 个答案:

没有答案