(注意:我已经为此查了一下,有很多关于如何通过对话框发布网址到图片的示例,以及一些关于如何发布图片的示例 - 数据直接到相册,但这些都不是我想要做的。)
我可以使用与此类似的代码轻松发布存储在网络上的图像:
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部分是好的,我现在不是了解如何查找上传图片的网址。再次感谢!
答案 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图像发布。