Facebook Graph API获取用户的个人资料照片

时间:2014-07-27 17:38:12

标签: objective-c facebook-graph-api ios7 facebook-graph-api-v2.0

我正在使用Facebook Graph API v2.0。以下电话

[FBRequestConnection startWithGraphPath:@"/me/picture" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    if (!error) {
        NSLog(@"%@", result);
    } else {
        NSLog(@"%@", [error userInfo]);
    }
}];

导致此错误:

{
    NSLocalizedDescription = "Response is a non-text MIME type; endpoints that return images and other binary data should be fetched using NSURLRequest and NSURLConnection";
    "com.facebook.sdk:ErrorSessionKey" = "<FBSession: 0x10f036250, state: FBSessionStateOpen, loginHandler: 0x100073a40, appID: 863523550341327, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x10f0339c0>, expirationDate: 4001-01-01 00:00:00 +0000, refreshDate: 2014-07-27 17:20:14 +0000, attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(\n    installed,\n    \"public_profile\",\n    email,\n    \"user_birthday\",\n    \"user_location\",\n    \"user_friends\"\n)>";
    "com.facebook.sdk:HTTPStatusCode" = 0;
}

有谁知道为什么会这样?我真正需要的只是一个回复,其中包含我个人资料图片的网址。在2012年及之前,我们提出了类似的问题,但自那时起API已发生变化。请不要将此标记为重复,除非您确实确定您重定向到我的问题有一个有效的解决方案。我尝试过其他一些替代方法,例如自己启动连接并使用图形路径,例如“/ me?fields = picture”,但它们都会导致相同的错误。

3 个答案:

答案 0 :(得分:1)

似乎我原来的电话要求提供图片。要获得基于文本的响应,该响应为个人资料照片提供了网址,以下内容对我有用:

 [FBRequestConnection startWithGraphPath:@"me?fields=picture.height(500),picture.width(500)"completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
            if (error) {

            }
}];

答案 1 :(得分:1)

对于我使用的新Facebook Graph API:

Label

您可以了解有关用户数据here

的更多信息

答案 2 :(得分:0)

借助此网址模板加载资料图片

    NSString *imgUrl = [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture", user.id];