3

以前已经问过/回答过某种形式的问题,但我对这个问题仍然很模糊。我正在尝试发布到朋友提要,但在尝试使用 startWithGraphPath:时不断收到“错误 com.facebook.sdk 代码 = 5”错误:来自新的 FB SDK for ios。FBSession 处于活动状态且打开,并且 access_token 似乎是正确的......这是一些代码:

    -(void)inviteUser:(NSString *)whoever {
        if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound) {
            // No permissions found in session, so ask for it
            [FBSession.activeSession reauthorizeWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] defaultAudience:FBSessionDefaultAudienceFriends completionHandler:^(FBSession *session, NSError *error) {
                if (!error){        
                    [self sendInvite:whoever];
                }
            }    
        }];
     }

-(void) sendInvite:(NSString *)whoever {
    NSMutableDictionary *params =
        [NSMutableDictionary dictionaryWithObjectsAndKeys:
        @"A name of something", @"name",
        nil];

    [FBRequestConnection
         startWithGraphPath:[NSString stringWithFormat:@"%@/feed", whoever]
         parameters:params
         HTTPMethod:@"POST"
         completionHandler:^(FBRequestConnection *connection,
                             id result,
                             NSError *error) {
             NSString *alertText;
             if (error) {
                 alertText = [NSString stringWithFormat:
                              @"error: domain = %@, code = %d",
                              error.domain, error.code];
             } else {
                 alertText = @"Posted successfully.";
             }
             // Show the result in an alert
             [[[UIAlertView alloc] initWithTitle:@"Result"
                                         message:alertText
                                        delegate:self
                               cancelButtonTitle:@"OK!"
                               otherButtonTitles:nil]
              show];
         }];

我还是新手,可能缺少一些基本的东西。但我只是没有看到它。

4

1 回答 1

0

解决它。我认为有两个问题:

  1. 没有在应用程序内部正确通信会话(即我在 loginController 中打开了 FBSession,但在 sendInvite 控制器中没有打开 <- 显然不是确切的名称)。结果,access_token 实际上没有激活。我应该遵循 FB 文档并将 FBSession 方法放在 appdelegate 中。
  2. 当我认为我应该使用“publish_stream”时,我正在使用“publish_action”权限。

与这两个变化顺利工作。不过,我确实有一个后续问题:如何使用新 SDK 的本机共享对话框在别人的墙上发帖?我可能会将此作为一个单独的问题提出。

于 2012-12-08T09:19:49.943 回答