使用最新的Facebook iOS SDK请求获取我/图片或userId /图片失败

时间:2012-04-16 18:54:44

标签: facebook image api facebook-graph-api

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

知道为什么,以及如果API发生变化,最佳选择是什么?

谢谢!

2 个答案:

答案 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];
}

致谢:https://stackoverflow.com/a/10528707/982913