我已經看到有關此問題的幾篇文章,但至今沒有任何內容似乎對我有幫助。基本上,我正在編寫iOS應用程序,並嘗試使用Graph API將照片發佈到Facebook相冊。圖像數據首先從服務器下載,然後發佈到Facebook。我使用的ASIFormDataRequest類和URL https://graph.facebook.com/MY_ALBUM_ID/photos,但我一直得到以下錯誤:通過Graph API和iOS將照片上傳到相冊時出現Facebook錯誤:(#1)發生未知錯誤
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所做的所有其他請求都可以正常工作。
有什麼想法?
想到一個網絡相關的問題?像是因爲防火牆?或者圖像太大? :)從谷歌搜索結果我看到它看起來像一個HTTP 400,這是一個格式不正確的請求... – 2011-06-04 00:01:59
@Vincent G它絕對**不**網絡相關的問題。作爲測試,我使用'[UIImage imageNamed:@「imageName」];'而不是'UIImage * image = [UIImage imageWithData:data];'從我的項目上傳了一個隨機圖像,並且它發佈得很好。我們在我們的服務器上使用ImageMagick來生成我試圖發送的圖像。看起來問題在於由ImageMagick生成的圖像數據。 – harrisonlee 2011-06-04 01:17:36
好的,所以這個問題超出了ImageMagick。在Photoshop中玩耍,並試圖將圖像添加到Facebook:一些工作,一些不。我無法找到不想上傳的特定圖像。當我嘗試將它們手動發佈到Facebook本身時,不會從我的應用上傳圖片。奇怪的。 – harrisonlee 2011-06-04 01:56:10