繁体   English   中英

Facebook 与 iOS6 的集成

[英]Facebook Integration With iOS6

我正在使用以下代码在 Facebook 上发布一些内容。

- (IBAction)post:(id)sender {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
    mySocialComposer = [[SLComposeViewController alloc]init];
    mySocialComposer = [SLComposeViewController 
    composeViewControllerForServiceType:SLServiceTypeFacebook];
    [mySocialComposer setInitialText:@"Hellooooooo World"];
    [mySocialComposer addImage:[UIImage imageNamed:@"image.jpg"]];

    [self presentViewController:mySocialComposer animated:YES completion:nil];


[mySocialComposer setCompletionHandler:^(SLComposeViewControllerResult result){

    NSString *outout = [[NSString alloc] init];

    switch (result) {
        case SLComposeViewControllerResultCancelled:
            outout = @"Post Cancled";
            break;
            case SLComposeViewControllerResultDone:
            outout = @"Post Successfull";

        default:
            break;
    }


    UIAlertView *myalertView = [[UIAlertView alloc]initWithTitle:@"FaceBook" 
    message:outout delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
    [myalertView show];

}];
}

}

我正在使用上述方法从 iOS 应用程序在 Facebook 上发布。如果我发布的内容包括图片和一些文本,则它成功地发布在 Facebook 上。 但是,当我尝试在没有图片的情况下在 Facebook 上发帖时,我只是为了这个目的而注释掉了以下行。

  [mySocialComposer addImage:[UIImage imageNamed:@"image.jpg"]];

在此过程中,我收到一条错误警报,提示无法发送此帖子,因为与 Facebook 的连接丢失。 有什么方法可以在没有图片的情况下在 Facebook 上发帖。 提前致谢。

您可以将添加图像设置为零。 你应该可以发帖了。

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
    {
        SLComposeViewController* mySocialComposer = [SLComposeViewController
                            composeViewControllerForServiceType:SLServiceTypeFacebook];
        [mySocialComposer setInitialText:@"Hellooooooo World"];
        [mySocialComposer addImage:nil];

        [self presentViewController:mySocialComposer animated:YES completion:nil];


        [mySocialComposer setCompletionHandler:^(SLComposeViewControllerResult result){

            NSString *outout = [[NSString alloc] init];

            switch (result) {
                case SLComposeViewControllerResultCancelled:
                    outout = @"Post Canceled";
                    break;
                case SLComposeViewControllerResultDone:
                    outout = @"Post Successfull";

                default:
                    break;
            }

根据 Apple 关于SLComposeViewController的官方文档,您会看到它说

返回值

返回一个布尔值,指示文本是否已成功设置。 讨论

如果文本不适合当前可用的字符空间或视图控制器已经呈现给用户(因此无法更改),则此方法返回 NO。 字符限制取决于目标服务并由服务提供商记录。 有关受支持服务的文档链接,请参阅 SLRequest 类参考中的“表 1 社会服务个人文档站点”。

因此,如果该控制器已经显示,它将无法工作。 尝试不同的文本并再次查看。

你能去掉吗

mySocialComposer = [[SLComposeViewController alloc]init];

你不应该那样做。

[mySocialComposer setInitialText:@"Hellooooooo World"];
[mySocialComposer addImage:[UIImage imageNamed:@"image.jpg"]];

[self presentViewController:mySocialComposer animated:YES completion:nil];

在设置完成处理程序后放置这些代码行。

还要从那里删除 UIAlertView 并将其放在完成处理程序中以用于错误情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM