2011-06-03 41 views
5

我已經看到有關此問題的幾篇文章,但至今沒有任何內容似乎對我有幫助。基本上,我正在編寫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所做的所有其他請求都可以正常工作。

有什麼想法?

+0

想到一個網絡相關的問題?像是因爲防火牆?或者圖像太大? :)從谷歌搜索結果我看到它看起來像一個HTTP 400,這是一個格式不正確的請求... – 2011-06-04 00:01:59

+0

@Vincent G它絕對**不**網絡相關的問題。作爲測試,我使用'[UIImage imageNamed:@「imageName」];'而不是'UIImage * image = [UIImage imageWithData:data];'從我的項目上傳了一個隨機圖像,並且它發佈得很好。我們在我們的服務器上使用ImageMagick來生成我試圖發送的圖像。看起來問題在於由ImageMagick生成的圖像數據。 – harrisonlee 2011-06-04 01:17:36

+0

好的,所以這個問題超出了ImageMagick。在Photoshop中玩耍,並試圖將圖像添加到Facebook:一些工作,一些不。我無法找到不想上傳的特定圖像。當我嘗試將它們手動發佈到Facebook本身時,不會從我的應用上傳圖片。奇怪的。 – harrisonlee 2011-06-04 01:56:10

回答

3

好吧,我明白了!

碰巧,Facebook對上傳圖片的比例限制。我仍然不確定它們是什麼,但在我的情況下,198x715圖像不符合它們的比例要求。我們聯繫了我們在Facebook開發團隊中認識的人員之一,他表示他們不會改變這些限制,但他們會爲API錯誤添加更好的消息。

希望能幫助任何人出現類似的問題。

+0

從八月中旬開始,我突然有同樣的問題。使用最新的FB iOS SDK,所有圖像上傳調用都會失敗,出現錯誤響應{「error」:{「message」:「(#1)發生未知錯誤」,「type」:「OAuthException」}}。 我試過不同的圖像尺寸,但都失敗了。還有什麼想法?這阻止了我的客戶現在主要的iPad/iPhone應用程序版本。 也嘗試從不同的IP,以防我的家庭IP由於某種原因被列入黑名單,但結果相同。 – Edwin 2011-09-23 09:24:34

+0

好的,我也想出了我的問題。在我的情況下,上傳失敗,因爲我傳遞的上傳消息包含一個http://鏈接(goo.gl鏈接到蘋果App Store中的應用程序)。要麼是,要麼消息值太長。 – Edwin 2011-09-26 12:08:12

0

有一個圖像限制沒有記錄,或者至少我找不到任何東西,當高度大於圖像寬度時,寬高比限制爲1:3。我做了很多測試來證實這一點,我可以向你保證這是今天的限制。

0

正如this answer中所述,當您的應用程序處於沙盒模式時,可能會導致該問題。

相關問題