如何通过iOS Social.framework在fb和twitter上上传多张照片?

时间:2013-11-29 06:21:19

标签: ios iphone objective-c ipad

我在SLComposeViewController中只看到了带有单个图像的addImage:方法。

有没有办法将图像数组附加到SLComposeViewController并一次性共享?

3 个答案:

答案 0 :(得分:1)

您需要直接使用Facebook Connect API:iOS SDK不会公开此类功能。

您应该查看Graph Photo API的发布部分,该部分建议使用此URL上传图片(不要忘记询问publish_stream凭证):

    POST https://graph.facebook.com/USER_ID/photos

message=[optional description]
source=[the image's data]
place=[optional image's location]
With the iOS Facebook Connect SDK that would give us this call, given you have a Facebook instance called facebook and a UIImage instance called image:

[facebook requestWithMethodName:@"/USER_ID/photos"
                      andParams:[NSDictionary dictionaryWithObjectsAndKeys:
                                 UIImageJPEGRepresentation(image, 0.7), @"source",
                                 @"My puppy is so cute!!!", @"message",
                                 nil]
                  andHttpMethod:@"POST"
                    andDelegate:self];

来源作者:ndfred

答案 1 :(得分:0)

Apple doc

引用
addMultipartData:withName:type:filename:
Specifies a named multipart POST body for this request.

- (void)addMultipartData:(NSData *)data withName:(NSString *)name type:(NSString*)type filename:(NSString *)filename

<强>参数 * 数据 * 多部分POST正文的数据,例如图像或文本。 的名称 多部分POST正文的名称。这是特定社交服务所期望的名称。 的类型 多部分POST主体的类型。这是多部分数据的MIME内容类型。 的文件名 要POST的附件的文件名。许多社交服务需要文件名才能接受某些POST请求,例如上传图像或视频。如果您的多部分数据不需要文件名,请传入nil

答案 2 :(得分:0)

我使用UIActivityViewController在Facebook上共享多个图像,而不是SLComposeViewController。也可以在Mail和其他应用程序上共享。用户必须在设备上配置社交帐户。

NSString *message = @"initial Text";
UIImage *imageToShare =imageForShareOnMedia; //[UIImage imageNamed:@"test.jpg"];

NSArray *postItems = @[message, imageToShare,imageToShare];

UIActivityViewController *activityVC = [[UIActivityViewController alloc]
                                            initWithActivityItems:postItems
                                            applicationActivities:nil];

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