使用旧版本的Facebook SDK for iOS,我可以要求我/图片或userId /图片来获取个人资料图片。当我尝试使用最新的SDK时,我得到一个空响应。
知道为什么,以及如果API发生变化,最佳选择是什么?
谢谢!
答案 0 :(得分:1)
我有同样的问题,我想改变了一些东西。可能他们希望开发者以“常规”方式下载图片。
在新SDK附带的hackbook facebook示例代码中,他们将图片下载为常规图片,而不是通过请求对象:
NSString * url = [NSStringstringWithFormat:@"https://graph.facebook.com/%@/picture",facebookObjectIdString];
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
UIImage *downloadedImage = [UIImage imageWithData:data];
正如您所见,只需像任何图片一样从网址下载图片。 您也可以使用NSURLRequest和sendSynchronousRequest等下载...
有兴趣知道这是新SDK或决定中的错误。
更新: 在某些情况下,如果图片属于某个限制下载图片访问权限的facebook对象(如某些页面的图片),则需要添加access_token参数。
答案 1 :(得分:1)
实际上,您仍然可以使用[facebook requestWithGraphPath:@"me/picture?type=large" andDelegate:self];
但是在-(void)request:(FBRequest *)request didLoad:(id)result
中,不是使用result
中的值,而是获取request.responseText
的图像数据,即NSMutableData并从那里构建图像。
示例:
-(void)request:(FBRequest *)request didLoad:(id)result {
NSLog(@"Got user avatar");
UIImage *profileAvatar = [UIImage imageWithData:request.responseText];
UIImageView *avatarImageView = [[UIImageView alloc] initWithImage:profileAvatar];
[self.view addSubview:avatarImageView];
}