我想让我的iPhone App用户查看并从他们的脸谱资料中选择照片,下载照片以用作个人资料图片。我目前正在使用Facebook SSO SDK并成功登录并访问Graph信息。尝试使用
访问照片信息(成功登录SSO后)[facebook requestWithGraphPath:@"me/albums"];
但我得到一个空的数据对象作为回报。我已经尝试使用Facebook API explorer,这非常有帮助,它确实为我提供了/ picture和/ photos / / album的数据。出于某种原因,我没有使用requestWithGraphPath与我/专辑,我/图片或我/照片获得相同的数据。只是简单的“我”工作正常,但没有给我任何图片信息。谁能告诉我我做错了什么?
注意:这是API参考:Facebook Graph API
我确实让图片资料像这样工作:
[facebook requestWithGraphPath:@"me?fields=picture"];
更新:我真的想要所有的相册配置文件照片,所以我需要知道如何通过iOS访问相册。我现在已成功获得的个人资料图片。
我根据API为相册添加了“user_photos”和“friends_photos”权限:
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_likes",
@"user_birthday",
@"email",
@"publish_stream",
@"publish_actions",
@"user_photos",
@"friends_photos",
nil];
[facebook authorize:permissions];
当我说我得到空数据时,这是返回的JSON结果(在request:didLoad :)中:
{
data = (
);
}
从我的日志文件输出:
- (void) request:(FBRequest *)request didLoad:(id)result{
NSLog(@"%@",result);
}
最后注意:最终工作的是使用另一个设备,它更新了我的权限,然后一切都开始工作了!我最好的猜测是模拟器和我的iPhone没有更新我的Facebook权限,所以我被拒绝访问照片并获得一个空的数据阵列。
这个问题也是一个很大的帮助:How to get photos of a facebook album in iPhone SDK?
答案 0 :(得分:8)
为了未来的观众,我正在回答我自己的问题,因为我还没有收到其他人的完整答案。
首先,您必须拥有"user_photos"
或"friends_photos"
的正确权限。然后你必须确保你的测试设备更新你的权限 - 我认为重新启动设备是最终为我做的。
完成后,您可以使用此调用通过SSO登录后获取相册的JSON列表:
[facebook requestWithGraphPath:@"me/albums" andDelegate:self];
这将为JSON数组(在键data
下)提供有关每个专辑的各种信息,包括ID。要获取特定相册ID(例如“123456789”)的照片列表,请执行以下操作:
NSString * albumId = @"123456789";
NSString * path = [NSString stringWithFormat:@"%@/photos", albumId];
[facebook requestWithGraphPath:path andDelegate:self];
您的回复当然会通过FBRequestDelegate
方法request:didLoad
来处理JSON数据。
答案 1 :(得分:1)
下载FBGraph Api文档文件夹,然后将其添加到您的文件夹中。并阅读facebook开发者网站http://developers.facebook.com/docs/reference/api/上的说明。
这是示例代码 - sample code
在此处,您将获得UIAlertView
中的用户个人资料照片。你可以把它展示在你想要的地方。