0

使用旧版本的 iOS 版 Facebook SDK,我可以要求 me/picture 或 userId/picture 来获取个人资料图片。当我使用最新的 SDK 尝试此操作时,我得到了一个空响应。

知道为什么,如果 API 发生了变化,最好的选择是什么?

谢谢!

4

2 回答 2

1

其实还是可以用的[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];
}

学分:https ://stackoverflow.com/a/10528707/982913

于 2012-07-06T19:58:09.970 回答
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];

如您所见,只需像任何图像一样从 URL 下载图像。您还可以使用 NSURLRequest 和 sendSynchronousRequest 等下载...

想知道这是否是新 SDK 或决定中的错误。

更新:在某些情况下,如果图片属于某些限制下载图片访问的 Facebook 对象(如某些页面的图片),您希望添加 access_token 参数。

于 2012-05-01T10:13:42.960 回答