以最快的方式获取Facebook好友个人资料图片 - iOS

ass*_*fey 1 iphone facebook objective-c facebook-graph-api ios

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

pictureURL =  [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?width=50&height=50", [data objectForKey:@"id"]];
Run Code Online (Sandbox Code Playgroud)

图像设置在这里:

NSString *pictureUrl = [[NSString alloc] initWithFormat:@"%@", [self getProfileUrl:object]];
[friend setImage:pictureUrl];
Run Code Online (Sandbox Code Playgroud)

set方法是:

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

非常简单,但是对于大量的朋友来说,这个过程需要太长时间,有没有办法让个人资料图像更快,或者更有效率呢?

and*_*tto 10

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

/me/friends?fields=name,picture.type(large)
Run Code Online (Sandbox Code Playgroud)

您得到类似于此的响应:

{   "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
        }
      }
    },
...
Run Code Online (Sandbox Code Playgroud)

所以你不必为你的每个朋友打电话给Facebook.此外,我建议您异步加载图像,这个伟大的组件可能是一个很好的起点.