通过Graph API和iOS将照片上传到相册时出现Facebook错误:(#1)发生了未知错误

har*_*lee 5 upload facebook photo ios

我已经看过几个关于这个问题的帖子,但到目前为止似乎没有什么能帮助我.基本上,我正在编写一个iOS应用程序并尝试使用Graph API将照片发布到Facebook相册.首先从服务器下载图像数据,然后将其发布到Facebook.我正在使用ASIFormDataRequest类和url https://graph.facebook.com/MY_ALBUM_ID/photos,但我一直收到以下错误:

error =     {
    message = "(#1) An unknown error occurred";
    type = OAuthException;
};
Run Code Online (Sandbox Code Playgroud)

我的请求看起来像这样:

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];
    });
});
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我使用完全相同的方法将照片上传到我的服务器,用于应用程序的不同部分,一切正常.我甚至已经将我要发送到Facebook的照片上传到我的服务器,看看数据是否正确发布.一切都好了.

我已经读过Facebook有时可以吐出我看到的错误,如果它有图像格式的问题,但错误本身就很模糊.我知道我的access_token是有效的.我正在向Facebook发出的所有其他请求都运行正常.

有什么想法吗?

har*_*lee 3

好吧,我想通了!

事实上,Facebook 对上传的图片有比例限制。我仍然不确定它们是什么,但就我而言,198x715 图像不符合他们的比例要求。我们联系了 Facebook 开发团队中的一位认识的人,他说他们不会改变限制,但会为 API 错误添加更好的消息传递。

希望对遇到类似问题的人有所帮助。