1

我在我的应用程序中设置了这些 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]

在此处输入图像描述

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

状态的文档user_photos

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

4

1 回答 1

1

用户个人资料图片不需要user_photos权限。图片可能来自 facebook 缓存,您应该使用以下 url 获取图片。

http://graph.facebook.com/<facebook id>/picture
于 2012-06-26T14:35:45.987 回答