当我将图像发布到 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];