2012-10-19 51 views
4

使用Facebook的iOS SDK,讓我們說我執行用戶的個人資料圖片圖要求:FBRequest:爲什麼不允許非文本MIME類型響應? (iOS版SDK)

[FBRequest requestForGraphPath:@"me/picture"] 

我會收到此錯誤:

Response is a non-text MIME type; endpoints that return images and other binary data should be fetched using `NSURLRequest` and `NSURLConnection`. 

什麼是推理在這背後?只需要一分鐘手動編寫請求,但爲什麼Facebook iOS SDK中不包含這個常見任務,或者我錯過了什麼?

通過Github上Facebook的iOS版SDK回購來看,我們認爲這在FBRequestConnection.m

if (!error && [response.MIMEType hasPrefix:@"image"]) { 
     error = [self errorWithCode:FBErrorNonTextMimeTypeReturned 
         statusCode:0 
       parsedJSONResponse:nil 
         innerError:nil 
          message:@"Response is a non-text MIME type; endpoints that return images and other " 
            @"binary data should be fetched using NSURLRequest and NSURLConnection"]; 
    } 

如果我正確理解這一點,FBRequestConnection得到我想要的反應(即個人資料圖片),然後告訴我不能擁有它。多麼逗笑。爲什麼首先提出要求?

對此的評論?

回答

1

的解決方案是要求一個特定的領域,而不是照片(這裏找到:Facebook Graph API will not give me picture data

所以使用

[FBRequest requestForGraphPath:@"me?fields=picture"] 

這應該工作

+0

你如何從數據中獲取圖片?我得到了大量的大括號和東西,它不工作只是試圖從它形成一本字典...我得到類似下面的東西: ({body = {id = 100002899999999; picture = {data = {「is_silhouette」= 0; url =「http://profile.ak.fbcdn.net/hprofile-ak-snc6/623595_199999892043363_26625455_q.jpg」;};};}; code = 200;}) –

+0

NEvermind,I得到它了。但我仍然不完全確定如何得到一個大的圖片,而不是一個小的。 –

相關問題