使用图形API将图像发布到Facebook时,始终获得“(#324)需要上传文件”

时间:2012-12-10 14:28:58

标签: ios facebook image

我总是得到“(#324)需要上传文件”当我将图片发布到facebook时,有很多人问同样的错误,大部分是使用php sdk,似乎他们通过设置解决了问题fileUpload为true($ facebook-> setFileUploadSupport(true);),例如:http://endorkins.com/2010/12/28/facebook-graph-api-upload-photos-requires-upload-file/Exception when uploading photo with Facebook Graph API

但是我在iOS中直接使用graph api,我找不到设置这个标志的位置,我试图在创建相册时设置它并上传图像,但是它没有用。

Facebook图形API参考(http://developers.facebook.com/docs/reference/api/album/)表示can_upload必须为专辑才能将照片上传到相册,我检查了我试图上传图片的相册,这是真的。

我也有user_photos,friends_photos,publish_stream,publish_actions。

的许可

下面是我发布图片的代码,我花了很多时间在这上面却无法修复它,请帮助我!任何帮助表示赞赏。

NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/"];

AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:url];

NSMutableDictionary *params = [NSMutableDictionary dictionary];

[params setObject:token forKey:@"access_token"];

[params setObject:@"the message" forKey:@"message"];

NSData *imgData = UIImageJPEGRepresentation(self.img, 1.0);

[params setObject:imgData forKey:@"source"];

NSMutableURLRequest *request = [client requestWithMethod:@"POST" path:[NSString stringWithFormat:@"%@/photos", albumId] parameters:params];

[request setValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];

//        [request setValue:[NSString stringWithFormat:@"%d", imgData.length]   forHTTPHeaderField:@"Content-Length"];

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSLog(@"%@", error);

        NSLog(@"%@", operation.responseString);

}];

[operation start];

1 个答案:

答案 0 :(得分:1)

好的,最后我通过使用facebook SDK发布图片来解决这个问题。