【问题标题】:How to get photos of a facebook album in iPhone SDK?如何在 iPhone SDK 中获取 Facebook 相册的照片?
【发布时间】:2011-06-22 18:12:07
【问题描述】:

我正在开发一个 iPhone 应用程序,它使用这个 URL https://graph.facebook.com/me/albums?access_token=2227470867|2.ZJr73vaEvFeN4fI_A70RFw__.3600.1297090800-100000566543036|WmgxdwULBgKXl8J7ksGIA1tyGik 获取 Facebook 相册

现在我想从这个相册中获取照片。

任何想法都会受到赞赏。

提前致谢。

【问题讨论】:

标签: ios facebook facebook-graph-api facebook-ios-sdk


【解决方案1】:

所以 /me/albums 返回一个 Album objects 数组,每个数组都有一个 id

如果相册的id是99394368305,你可以去

https://graph.facebook.com/99394368305/photos

获取photo objects的数组。

每个都将具有picturesource 属性以从facebook 获取图像数据。

如果您想要预先缩放的图像而不仅仅是原始图像,它们也会有一个 images 数组。


所有的 facebook 查询都会返回 JSON - 我假设你知道如何解析这个?

【讨论】:

  • 你能回答这个问题吗? stackoverflow.com/questions/4957260/…
  • 当我在浏览器上执行 @deanWombourne graph.facebook.com/album_id/photos 时返回“False”。你如何将它与 Facebook iOS sdk 的 FBConnect 一起使用?
  • 您将什么设置为您的album_id,您是否有权查看该相册? (我假设您不只是将 album_id 直接放在那里!)
  • 但在我的情况下,它返回一个空白 json 文件,正在执行与您建议相同的过程
  • @varunbhardwaj 自己问一个问题,而不是评论别人的问题 :) 当你问这个问题时,不要忘记输入你正在使用的代码和你得到的 json回应。
【解决方案2】:

由于以下步骤,需要花费大量时间;

1) 使用 :

获取好友的 uid
NSString *urlString=[NSString stringWithFormat:@"https://graph.facebook.com/me/friends?access_token=%@&fields=id,picture,name,birthday",fbGraph.accessToken];

2) 输入好友uid获取相册id:

NSString *urlString1=[NSString stringWithFormat:@"https://graph.facebook.com/%@/albums?access_token=%@",obj.uid,fbGraph.accessToken];

NSString *album = [[[_response1 objectForKey:@"data"]objectAtIndex:j]objectForKey:@"name"];

if ([album isEqualToString:@"Profile Pictures"]) 
{
      albumid = [[[_response1 objectForKey:@"data"]objectAtIndex:j]objectForKey:@"id"];
}

3) 然后输入相册 id 以从该相册中获取图片:

NSString *albumUrl=[NSString stringWithFormat:@"https://graph.facebook.com/%@/photos?type=album&access_token=%@",albumid,fbGraph.accessToken];

 NSString *picUrl=[[[[[_response2 objectForKey:@"data"]objectAtIndex:0]objectForKey:@"images"]objectAtIndex:0]objectForKey:@"source"];

请告诉我一些其他方法,以节省时间。

【讨论】:

  • 但我不明白..我把这三种方法都放在哪里了。?我是ios的新手。所以请正确引导我。
【解决方案3】:

下面的代码应该可以为您完成正确的工作。它获取登录用户的相册,然后请求此相册的照片。在有评论的地方,您将可以访问所有照片。更多信息可以参考docs:

FBRequest *request = [FBRequest requestForGraphPath:@"me/albums"];
[request startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary <FBGraphUser> *my, NSError *error) {
    if ([my[@"data"]count]) {
        for (FBGraphObject *obj in my[@"data"]) {
            FBRequest *r = [FBRequest requestForGraphPath:[NSString stringWithFormat:@"/%@/photos", obj[@"id"]]];
            [r startWithCompletionHandler:^(FBRequestConnection *c, NSDictionary <FBGraphUser> *m, NSError *err) {
                //here you will get pictures for each album
            }];
        }
    }

}];

【讨论】:

  • 如果您单击文档链接,Facebook 开发人员已过时/弃用此功能。因此,我在下面添加了他们的新代码。
【解决方案4】:

Facebook 开发者新代码:

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{user-id}"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

Latest Facebook Graph API docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    相关资源
    最近更新 更多