返回Facebook个人资料图片

时间:2014-04-19 00:25:05

标签: ios objective-c facebook-graph-api

是否可以从Facebook个人资料图片中检索图片文件的名称?

我想要做的是:当用户登录时,我将检索用户的个人资料照片,然后将其保存在文件中。但是,我想总是检查用户是否更新了Facebook上的图片,如果是,请再次将其保存在文件中。

是否可以获取文件的名称,因此我可以比较它们?

以下是我用来下载图片的代码:

NSString *urlString = [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?width=100&height=100",[[PFUser currentUser] objectForKey:@"fbId"]];                
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];

    AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];
    requestOperation.responseSerializer = [AFImageResponseSerializer serializer];

    [requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject){
        profilePicture = [UIImage imageWithData: operation.responseData];
        NSDictionary<FBGraphUser> *me = (NSDictionary<FBGraphUser> *)responseObject;
        NSLog(@"ResponseObject %@", me.username);
        NSLog(@"Profile Image %@",profilePicture);
        [self saveImageOnDisk:profilePicture];
}];

1 个答案:

答案 0 :(得分:1)

你不应该这样做。再次请求它。 URL加载子系统将检查它的缓存版本并向Facebook发送If-Modified-Since(条件GET)请求以检查更新版本。您无需执行任何特殊操作,系统会为您执行此操作。如果有更新的数据可用,它将获得它,否则它将使用它已缓存的数据。

URL Loading System: Understanding Cache Access

RFC2616: HTTP Caching