16

我正在使用以下代码将图像上传到 Facebook 墙:

UIImage *img = [UIImage imageNamed:@"logoits.png"];

[FBRequestConnection startForUploadPhoto:img
                       completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

    NSLog(@"Facebook posting %@",result);
    NSLog(@"Facebook posting %@",error);

}];  

它按预期工作,但我想为这张上传的照片添加一条消息或标题,并且查看 FBRequestConnection 的文档,没有这样的例子。http://developers.facebook.com/docs/sdk-reference/iossdk/3.0/class/FBRequestConnection/

如何上传带有消息的图像?

4

3 回答 3

45

在 Facebook SDK 3.0 中,只能使用给定的方法发布图像,而对于其他操作,您需要使用图形 pi。

因此,要发布带有消息的图像,您需要使用 graph-api。这是代码行,可让您在用户时间轴上发布带有消息的图像。

NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
[params setObject:@"your custom message" forKey:@"message"];
[params setObject:UIImagePNGRepresentation(_image) forKey:@"picture"];
_shareToFbBtn.enabled = NO; //for not allowing multiple hits

[FBRequestConnection startWithGraphPath:@"me/photos"
                                 parameters:params
                                 HTTPMethod:@"POST"
                          completionHandler:^(FBRequestConnection *connection,
                                              id result,
                                              NSError *error) 
 {
     if (error) 
     {
         //showing an alert for failure
         [self alertWithTitle:@"Facebook" message:@"Unable to share the photo please try later."];
     } 
     else
     {
         //showing an alert for success
         [UIUtils alertWithTitle:@"Facebook" message:@"Shared the photo successfully"];
     }
     _shareToFbBtn.enabled = YES;
 }];

并确保_shareToFbBtn仅在登录成功后才启用。

于 2012-09-27T06:26:41.880 回答
5

linesvishy 的解决方案效果很好,还值得注意的是,如果您使用的是 Facebook SDK 3.1 并且您使用了方法

FBRequest *request = [FBRequest requestForUploadPhoto:_imageToShare];

您可以使用以下几行来替换它:

NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
[params setObject:_textToShare forKey:@"message"];
[params setObject:_imageToShare forKey:@"picture"];
FBRequest *request = [FBRequest requestWithGraphPath:@"me/photos" parameters:params HTTPMethod:@"POST"];

希望能帮助到你!快乐编码!

于 2013-01-10T10:34:03.377 回答
0

这是一个发布图片和注释的示例:

http://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/publish-open-graph-story/

于 2012-09-26T18:10:06.237 回答