2

当我将图像发布到 Facebook 时,我总是得到“(#324)需要上传文件”,有很多人问同样的错误,他们中的大多数人都使用 php sdk,似乎他们通过将 fileUpload 设置为 true 解决了问题($facebook->setFileUploadSupport(true);),例如:http ://endorkins.com/2010/12/28/facebook-graph-api-upload-photos-requires-upload-file/ ,上传照片时出现异常使用 Facebook 图形 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];
4

1 回答 1

1

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

于 2012-12-12T15:32:10.103 回答