使用旧版本的 iOS 版 Facebook SDK,我可以要求 me/picture 或 userId/picture 来获取个人资料图片。当我使用最新的 SDK 尝试此操作时,我得到了一个空响应。
知道为什么,如果 API 发生了变化,最好的选择是什么?
谢谢!
使用旧版本的 iOS 版 Facebook SDK,我可以要求 me/picture 或 userId/picture 来获取个人资料图片。当我使用最新的 SDK 尝试此操作时,我得到了一个空响应。
知道为什么,如果 API 发生了变化,最好的选择是什么?
谢谢!
其实还是可以用的[facebook requestWithGraphPath:@"me/picture?type=large" andDelegate:self];
但是 in -(void)request:(FBRequest *)request didLoad:(id)result
,而不是使用 in 的值,而是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];
}
我遇到了同样的问题,我猜想改变了什么。也许他们希望开发人员以“常规”方式下载图片。
在新 SDK 附带的 hackbook facebook 示例代码中,他们像普通图片一样下载图片,而不是通过请求对象:
NSString * url = [NSStringstringWithFormat:@"https://graph.facebook.com/%@/picture",facebookObjectIdString];
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
UIImage *downloadedImage = [UIImage imageWithData:data];
如您所见,只需像任何图像一样从 URL 下载图像。您还可以使用 NSURLRequest 和 sendSynchronousRequest 等下载...
想知道这是否是新 SDK 或决定中的错误。
更新:在某些情况下,如果图片属于某些限制下载图片访问的 Facebook 对象(如某些页面的图片),您希望添加 access_token 参数。