【问题标题】:how to get an image with specific id from Facebook graph api iOS?如何从 Facebook graph api iOS 获取具有特定 ID 的图像?
【发布时间】:2014-07-01 02:57:59
【问题描述】:

在我的应用程序中,我试图从 Facebook 页面照片/相册中获取特定图像。我可以在 NSArray 中很好地获取所有图像,但是我应该如何查询我想要的特定图像。

这是我的网址:@“https://graph.facebook.com/v2.0/albumid/photos”,这给了我一个带有源网址的图像数组,但它们不是我可以用来获取我想要的图像的图像 ID。

任何帮助将不胜感激。

谢谢,

【问题讨论】:

    标签: ios xcode facebook facebook-graph-api


    【解决方案1】:

    我想你需要这个,http://graph.facebook.com/v2.0/me?fields=albums.fields(photos.fields(id,source,name,picture))

    通过此链接,您可以获得id、单张照片的来源和图片。

    【讨论】:

    • 但是我将如何从 id 中获取图像。假设我想从他的 ABC 获取图像的人,那么请求应该是什么样的?会不会是:graph.facebook.com/v2.0/ABC/photos/photoid
    • 你的意思是只有在传递照片id的情况下才有照片?还有,什么是“ABC”,是你认知中的专辑吗?
    • 是的,我想通过照片 ID 获取照片,ABC 是用户 ID
    • 如果你有photoid,那么你可以直接将它附加到graph API url中,可以得到photo,即graph.facebook.com/v2.0/photoid,并且不需要使用用户ID .
    【解决方案2】:

    您首先从中获取 url,然后将 url 加载到 UIImageView

     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
        [manager GET:[NSString stringWithFormat:@"http://graph.facebook.com/%@/?fields=picture",fbId] parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
            NLog(@"JSON %@",responseObject);
            NSDictionary *pic = [responseObject objectForKey:@"picture"];
            NSDictionary *data = [pic objectForKey:@"data"];
            NSString *url = [data objectForKey:@"url"];
    
            [imageView setImageWithURL:[NSURL URLWithString:url]];
    
    
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {    
            NLog(@"Error: %@", error);
        }];
    

    【讨论】:

    • 但是我将如何知道我要为其捕获 url 的图像的 id。
    • 这里的id是facebook ID。
    • 这是棘手的部分。我将从哪里获得特定图像的此 ID。您能否给我一个网址,我可以在浏览器/图形 API 资源管理器中进行测试以澄清。我认为您显示的上述请求只会给我个人资料图片
    【解决方案3】:

    对于使用最新 SDK 的用户

    self.arrayMedia = [[NSMutableArray alloc]init];

    [[[FBSDKGraphRequest alloc] initWithGraphPath:@"/me/albums" parameters:@{@"fields": @"id"} tokenString:[[NSUserDefaults standardUserDefaults] objectForKey:@"FACEBOOK_ACCESSTOKEN"] version:nil HTTPMethod:@"GET"]
    
     startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
         NSLog(@"result albums:%@",result);
         NSLog(@"Error %@",error.description);
    
         for (NSDictionary *dict in result[@"data"]) {
    
             [[[FBSDKGraphRequest alloc] initWithGraphPath:[NSString stringWithFormat:@"/%@/photos", dict[@"id"]] parameters:@{@"fields": @"id,url,picture"} tokenString:[[NSUserDefaults standardUserDefaults] objectForKey:@"FACEBOOK_ACCESSTOKEN"] version:nil HTTPMethod:@"GET"]
    
              startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    
                  for (NSDictionary *dict in  result[@"data"])
                  {
                      [self.aryMedia addObject:dict];
                  }
    
              }];
         }
     }];
    

    【讨论】:

      猜你喜欢
      • 2011-08-16
      • 2012-04-26
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-26
      • 1970-01-01
      相关资源
      最近更新 更多