5

假设我使用 Facebook 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得到我想要的响应(即个人资料图像)然后告诉我我不能拥有它。真是个逗比。为什么首先提出请求?

对此有何评论?

4

2 回答 2

5

对于大图

me?fields=picture.type(large)

请参阅Facebook Graph API 更改:图片类型(大小)不再工作?

于 2012-12-28T11:39:37.300 回答
2

解决方案是要求一个特定的字段而不是图片(在这里找到:Facebook Graph API will not give me picture data

所以使用

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

那应该工作

于 2012-10-26T04:23:09.467 回答