代码之家  ›  专栏  ›  技术社区  ›  Tony Xu

为什么我的iOS应用程序突然无法将状态更新发布到Facebook

  •  2
  • Tony Xu  · 技术社区  · 12 年前

    我能够通过几天前开发的iOS应用程序在Facebook用户墙上发布状态更新。然后我可能不小心删除了一些东西,我现在无法发布并获得错误消息。相关代码为A:

        message = @"test";
        [FBRequestConnection startForPostStatusUpdate:message
        completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
        }
    

    我还尝试了以下方法B:

        [FBRequestConnection startWithGraphPath:@"me/feed" parameters:postParams HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection,id result,NSError *error)
    

    我收到了同样的错误信息:操作无法完成。(com.facebook.sdk错误5.)“

    我还注意到,无论我使用FacebookSDK.h还是Facebook.h,这两种方法(四种方法)都会收到相同的错误消息。我还想知道为什么FacebookSDK.h足以支持上面的两种方法,为什么教程建议弃用Facebook.h。

    有趣的是,我去查看了另一个测试iOS应用程序,我记得它可以发布Facebook状态更新,但发现它也不能发布。知道吗?

    1 回复  |  直到 12 年前
        1
  •  1
  •   Tony Xu    12 年前

    我决定使用iOS6功能SLComposeViewController,这使得发布Facebook状态更新变得轻而易举。

    在你的.m文件中添加社交框架后,你可以这样做:

        - (IBAction)clickMe:(UIButton *)sender {
             NSLog(@"you clicked me");
             if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
    
           SLComposeViewController* myFB = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    
    
              SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result) {
                if (result == SLComposeViewControllerResultCancelled) {
                    NSLog(@"cancelled");
               } else {
                   NSLog(@"oh yeah");
               }
            [myFB dismissViewControllerAnimated:YES completion:nil];
        };
        myFB.completionHandler = myBlock;
        [myFB setInitialText:@"Posting from my app."];
        [self presentViewController:myFB animated:YES completion:nil];
    
        }
    
        }