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

注意:我已经仔细研究了这一点,并且有大量关于如何通过对话框发布URL到图像的示例,以及一些关于如何将图像数据直接发布到相册的示例,但这些都没有是我想要做的。)

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

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", 

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

谢谢!

编辑:这是一个客户端iPhone应用程序,没有服务器,所以,虽然上传图像到FB作为一个由两部分组成的过程的第一部分是好的,我现在还没有看到如何找到上传图像的URL。 再次感谢!

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

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

您可以使用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图像发布。