我已经看过几个关于这个问题的帖子,但到目前为止似乎没有什么能帮助我。基本上,我正在编写一个iOS应用程序并尝试使用Graph API将照片发布到Facebook相册。首先从服务器下载图像数据,然后将其发布到Facebook。我正在使用ASIFormDataRequest类和url https://graph.facebook.com/MY_ALBUM_ID/photos,但我一直收到以下错误:
error = {
message = "(#1) An unknown error occurred";
type = OAuthException;
};
我的请求如下:
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:url]];
self.photoRequest = request;
[request setDelegate:self];
[request setPostValue:token forKey:@"access_token"];
[request setPostValue:message forKey:@"message"];
[request setTimeOutSeconds:240];
[request setRequestMethod:@"POST"];
UIImage *image = [UIImage imageWithData:data];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData *imageData = UIImageJPEGRepresentation(image, 0.8);
[request setData:imageData forKey:@"source"];
dispatch_async(dispatch_get_main_queue(), ^{
[request startAsynchronous];
});
});
奇怪的是,我使用完全相同的方法将照片上传到我的服务器以用于应用程序的不同部分,一切正常。我甚至已经将我要发送到Facebook的照片上传到我的服务器,看看数据是否正确发布。一切都好了。
我已经读过Facebook有时可以回吐我看到的错误,如果图像格式有问题,但错误本身就很模糊。我知道我的access_token是有效的。我正在为Facebook做的所有其他请求都工作得很好。
有什么想法吗?
答案 0 :(得分:3)
好的,我明白了!
碰巧,Facebook对上传的图片有比例限制。我仍然不确定它们是什么,但在我的情况下,198x715的图像不符合它们的比例要求。我们联系了Facebook开发团队中我们知道的其中一个人,他说他们不会改变限制,但他们会为API错误添加更好的消息。
希望能帮助那些有类似问题的人。
答案 1 :(得分:0)
有一个未记录的图像限制,或者至少我找不到任何内容,当高度大于图像上的宽度时,宽高比限制为1:3。我做了很多测试来证实这一点,我可以向你保证这是今天的限制。
答案 2 :(得分:0)
如this answer中所述,当您的应用程序处于沙盒模式时,可能会导致问题。