Facebook SDK加载默认图像而不是我的个人资料图片,为什么?

时间:2012-06-26 14:18:33

标签: ios facebook facebook-graph-api

我在我的应用中设置了这些facebook权限:

NSArray *permissions = [[NSArray alloc] initWithObjects:
                                    @"user_games_activity", 
                                    @"friends_games_activity",
                                    @"publish_actions",
                                    @"user_photos",
                                    nil];
            [[myDelegate facebook] authorize:permissions];

我正在提出这样的请求:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"name,picture",@"fields",nil];
    [[delegate facebook] requestWithGraphPath:@"me" andParams:params andDelegate:self];

处理响应如:

else if([request.url rangeOfString:@"me"].location != NSNotFound)
    {
        NSString *username = [result objectForKey:@"name"];
        NSLog(@"We think the username is %@", username);
        helloGreeting.text = [NSString stringWithFormat:@"Hello %@", username];


        NSString *pictureUrl = [result objectForKey:@"picture"];
        NSLog(@"Now loading image [%@]", pictureUrl);
        NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:pictureUrl]];
        profilePhoto.image = [UIImage imageWithData:data];  
    }

我得到的日志输出是:

2012-06-26 15:10:49.002 FacebookIntegrator[10549:f803] We think the username is James Elsey
2012-06-26 15:10:49.003 FacebookIntegrator[10549:f803] Now loading image [http://profile.ak.fbcdn.net/static-ak/rsrc.php/v2/yo/r/UlIqmHJn-SK.gif]

enter image description here

问题:为什么它会获得默认的通用facebook图标而不是我自己的个人资料图片?在Graph Explorer上使用相同的访问令牌,我可以访问我的个人资料图片图片网址

user_photos州的documentation

  

提供对用户上传的照片的访问权限,以及照片   用户已在

中标记

1 个答案:

答案 0 :(得分:1)

用户个人资料照片不需要user_photos权限。图片很可能来自facebook缓存,您应该使用以下网址作为图片。

http://graph.facebook.com/<facebook id>/picture