iOS facebook sdk 如何下载相册、个人资料照片数据
Posted
技术标签:
【中文标题】iOS facebook sdk 如何下载相册、个人资料照片数据【英文标题】:iOS facebook sdk how to download album, profile photos data 【发布时间】:2012-07-27 15:35:03 【问题描述】:我想让我的 iPhone 应用程序用户查看并从他们的 facebook 个人资料照片中选择,下载照片以用作个人资料照片。我目前正在使用 Facebook SSO SDK 并成功登录并访问 Graph 信息。已尝试使用
访问照片信息(成功 SSO 登录后)[facebook requestWithGraphpath:@"me/albums"];
但我只是得到一个空的数据对象作为回报。我试过使用Facebook API explorer,它很有帮助,它确实为我提供了/picture 和/photos 和/albums 的数据。出于某种原因,使用 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 权限,所以我被拒绝访问照片并获得一个空的数据数组。
这个 SO 问题也很有帮助:How to get photos of a facebook album in iPhone SDK?
【问题讨论】:
【参考方案1】:为了未来的观众,我将回答我自己的问题,因为我还没有收到其他人的完整答案。
首先,您必须拥有正确的权限,"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 数据。
【讨论】:
我可以得到一份你在这方面的工作吗?我也想允许用户从他们的 FB 获取照片,但不知道从哪里开始。 我得到了结果=== data = ( ); 在我/专辑请求上。你能建议什么是错的吗? @Imran 您是否检查了您的权限并确保您已正确登录?除此之外,我建议你发布一个新问题,祝你好运! 我登录正确。你建议的权限是什么。 同上,user_photos 和 friends_photos。【参考方案2】:下载 FBGraph Api 文档文件夹,然后将其添加到您的文件夹中。并阅读 facebook 开发者网站 http://developers.facebook.com/docs/reference/api/ 上的说明。
这是示例代码 - sample code
在此您将在UIAlertView
中获得用户个人资料图片。你可以把它显示在你想要的地方。
【讨论】:
谢谢,我会看一下示例代码——虽然我看到不再维护它的注释,这是最新的吗? 嘿,我相信你会发现它很棒。我在我的一个应用程序中使用过它。有一种方法 -(IBAction)getAuthorPictureButtonPressed:(id)sender。只需检查一下 我试试看,绝对有帮助。 如何获取所有个人资料相册图片,你知道吗?我在示例代码中没有看到这样的示例。 对于所有朋友的个人资料图片,您必须制作一个包含所有朋友 id 的数组,然后将 id 替换为用户 id 并逐个发送请求...这取决于您的逻辑。对于专辑请点击我给你的链接,这里是获取专辑照片的网址。以上是关于iOS facebook sdk 如何下载相册、个人资料照片数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 iOS SDK 将多张照片作为单个帖子上传,例如时间线照片,而不是 Facebook 中的相册
Facebook iOS-sdk 并发布本地 (UI)Image