5

我想让我的 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 问题也有很大帮助:如何在 iPhone SDK 中获取 Facebook 相册的照片?

4

2 回答 2

8

为了未来的观众,我将回答我自己的问题,因为我还没有收到其他人的完整答案。

首先,您必须拥有正确的权限,无论是"user_photos"还是"friends_photos"。然后你必须确保你的测试设备更新你的权限——我认为重启设备是最终为我做的。

完成此操作后,您可以在通过 SSO 登录后,使用以下调用获取专辑的 JSON 列表:

[facebook requestWithGraphPath:@"me/albums" andDelegate:self];

这将为 JSON 数组(在 key 下data)提供有关每个专辑的各种信息,包括 ID。要获取特定相册 ID(例如“123456789”)的照片列表,请执行以下操作:

NSString * albumId = @"123456789";
NSString * path = [NSString stringWithFormat:@"%@/photos", albumId];
[facebook requestWithGraphPath:path andDelegate:self];

您的响应当然会通过您可以处理 JSON 数据的FBRequestDelegate方法来实现。request:didLoad

于 2012-08-02T14:25:08.663 回答
1

下载 FBGraph Api 文档文件夹,然后将其添加到您的文件夹中。并阅读 facebook 开发者网站http://developers.facebook.com/docs/reference/api/上的说明。

这是示例代码 -示例代码

在此您将获得用户个人资料图片UIAlertView。你可以把它显示在你想要的地方。

于 2012-07-27T15:38:44.530 回答