1

我正在尝试使用 FBConnect 获取我朋友的照片,请求的 URL 是:

pictureURL =  [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?width=50&height=50", [data objectForKey:@"id"]];

以及此处设置的图像:

NSString *pictureUrl = [[NSString alloc] initWithFormat:@"%@", [self getProfileUrl:object]];
[friend setImage:pictureUrl];

设置方法是:

NSData *pictureData = [NSData dataWithContentsOfURL:[NSURL URLWithString:pictureUrl]];
UIImage *image = [UIImage imageWithData:pictureData];
if (image != nil)
    friendImage = image;

很简单,但是对于大量的朋友来说,这个过程需要很长时间,有没有办法比这更快或更有效地获取个人资料图像?

4

1 回答 1

10

您可以在用于检索朋友的相同请求中获取他们的个人资料图片,如下所示:

/me/friends?fields=name,picture.type(large)

您会收到与此类似的响应:

{   "data": [
    {
      "name": "xxx", 
      "id": "42", 
      "picture": {
        "data": {
          "url": "https://fbcdn-profile-a.akamaihd.net/image1.jpg",

          "is_silhouette": false
        }
      }
    }, 
    {
      "name": "xxx", 
      "id": "42", 
      "picture": {
        "data": {
          "url": "https://fbcdn-profile-a.akamaihd.net/image2.jpg",

          "is_silhouette": false
        }
      }
    },
...

因此,您不必为每个朋友调用 Facebook。另外,我建议您异步加载图像,这个很棒的组件可能是一个很好的起点。

于 2013-04-26T17:22:23.253 回答