Как получить исходный URL-адрес фотографии в Facebook с помощью API-интерфейса графика Facebook? - PullRequest
0 голосов
/ 07 июля 2011

Не могли бы вы сказать мне, как использовать Graph API, чтобы получить исходный URL для фотографии?Поскольку у меня есть удостоверение личности с фотографией, и мне кажется, что я смогу позвонить, чтобы получить исходный URL.

В качестве примера того, что я пытаюсь сделать, работает следующий код:

-(IBAction)showPicture:(UIButton *)sender;
{
    //code to retrieve picture

    id path = @"http://photos-e.ak.fbcdn.net/photos-ak-snc1/v5041/89/51/40796308305/a40796308305_1960517_6704612.jpg";
    NSURL *url = [NSURL URLWithString:path];
    NSData  *data = [NSData dataWithContentsOfURL:url];
    UIImage *img = [[UIImage alloc] initWithData:data];
    [self.label setText: (NSString *)path];
    imageView.image = img;
    [img release];

}

Однако это работает, когда у меня есть исходный URL.Есть ли способ использовать Graph API, чтобы я мог заменить id path = @"http://..." на что-то вроде id path = [_facebook requestWithGraphPath:@"98423808305/source" andDelegate:self]; ???


Обновлен, чтобы включить метод didLoad запроса

- (void)request:(FBRequest *)request didLoad:(id)result {


    if ([request.params objectForKey:@"picture"]) {
        // Get photo ID from result
        NSString *photoId = (NSString *)[result objectForKey:@"id"];
        shitStorm = photoId;
    }


  if ([result isKindOfClass:[NSArray class]]) {
    result = [result objectAtIndex:0];
  }
  if ([result objectForKey:@"owner"]) {
    [self.label setText:@"Photo upload Success"];
  } else {
    [self.label setText:[result objectForKey:@"name"]];
  }
};

1 Ответ

2 голосов
/ 07 июля 2011
[_facebook requestWithGraphPath:@"YOUR_PHOTO_ID" andDelegate:self];  

тогда в ответе на запрос вы получите всю информацию о картине. Смотрите пример здесь:
https://graph.facebook.com/98423808305
Соберите необходимую информацию, возможно, с ключом «источник», и используйте ее, как вы хотите. http://developers.facebook.com/docs/reference/api/ это очень хорошее место для изучения во время разработки с FB.

- (void)request:(FBRequest*)request didLoad:(id)result {  
    NSLog(@"%@",result);
    NSArray *keys=[result allKeys];
    NSLog(@"%@",keys);
    NSString *imageURL=[result objectForKey:@"source"];
    //here you can use this imageURL to get image-data and display it in imageView  
}  

Возможно, это даст вам представление о том, как сортировать различные запросы.

- (void)request:(FBRequest*)request didLoad:(id)result{
    NSLog(@"%@",result);
    NSString *requestType =[request.url stringByReplacingOccurrencesOfString:@"https://graph.facebook.com/" withString:@""];
    if ([requestType isEqualToString:@"me"]) {
        //Request to get User's Profile info
    }
    else if ([requestType isEqualToString:@"me/picture"]) {
        //this is the request to get User's Profile Picture
    }   
}  

Аналогичным образом вы можете сортировать разные запросы и, следовательно, выполнять разные специфичные для запроса задачи.

...