如何使用FBConnect对话框方法将UIImage发布到我的墙上?

时间:2011-03-24 19:00:22

标签: iphone ios facebook uiimage

注意:我已经为此查了一下,有很多关于如何通过对话框发布网址到图片的示例,以及一些关于如何发布图片的示例 - 数据直接到相册,但这些都不是我想要做的。)

我可以使用与此类似的代码轻松发布存储在网络上的图像:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
        @"This is what I say about kittens!", @"message",
        @"Kittens!", @"name",
        @"I'm feeling fuzzy", @"caption",
        @"You, too, can feel fuzzy, with FuzzyKitten™", @"description",
        @"http://example.com/fuzzykitten.html", @"link",
        @"http://placekitten.com/200/150", @"picture",
        nil];

[facebook dialog: @"feed"
            andParams: params
            andDelegate: self];

一切正常。问题是,我想替换:

        @"http://placekitten.com/200/150", @"picture",

带有以下内容:

        [UIImage imageNamed: @"myImage.png"], @"picture",

当然,这是不对的。所以我的问题是:如果我有UIImage形式的图像,如何将其加载到参数字典中以传递给对话框方法?

谢谢!

编辑:这是一款没有服务器的客户端iPhone应用程序,将图像上传到FB作为2部分过程的第1部分是好的,我现在不是了解如何查找上传图片的网址。再次感谢!

2 个答案:

答案 0 :(得分:3)

您无法直接将图片上传到墙上,在发布到墙上时,只需将图片链接到墙上即可 所以,你需要先在某处上传UIImage。您有2个选择:
1.上传到您/某个服务器并发布链接到它的墙贴 2.上传到Facebook相册。检查graph API关于这样做,这非常简单。

编辑:您无法再获取在Facebook CDN(可能还有其他CDN)中托管的图像,因此如果您需要从对话框中链接图像,则应将其上传到服务器上并从中获取永久链接

答案 1 :(得分:0)

您可以使用ASIFormDataRequest并运行脚本,使用以下内容将文件上传到服务器:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

// Upload a file on disk
[request setFile:@"/Users/ben/Desktop/ben.jpg" withFileName:@"myphoto.jpg" andContentType:@"image/jpeg"
forKey:@"photo"];

然后让ASIFormDataRequest的响应将上传图像的url返回给您的应用程序。 您可以使用ASIFormDataRequest响应事件来触发Facebook图像发布。