Как получить фотографии из альбома в Facebook в iPhone SDK? - PullRequest
8 голосов
/ 07 февраля 2011

Я разрабатываю приложение для iPhone, которое получает альбом Facebook с этим URL https://graph.facebook.com/me/albums?access_token=2227470867|2.ZJr73vaEvFeN4fI_A70RFw__.3600.1297090800-100000566543036|WmgxdwULBgKXl8J7ksGIA1tyGik

Теперь я хочу получить фотографии из этого альбома.

Любая идея будет оценена.

Заранее спасибо.

Ответы [ 4 ]

13 голосов
/ 07 февраля 2011

Итак / me / album возвращает массив объектов альбома , каждый из которых имеет id.

Если альбом имел идентификатор 99394368305, вы можете перейти к

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

, чтобы получить массив фотообъектов .

Каждый из них будет иметь свойства picture и source для получения данных изображения из facebook.

Они также будут иметь массив images, если вы хотите предварительно масштабировать изображениявместо оригиналов.


Все запросы на Facebook возвращают JSON - я предполагаю, что вы знаете, как это проанализировать?

3 голосов
/ 26 мая 2014

Код ниже должен сделать правильную работу для вас. Он получает альбомы для зарегистрированных пользователей, а затем запрашивает фотографии этих альбомов. В том месте, где находится комментарий, у вас будет доступ ко всем фотографиям. Для получения дополнительной информации вы можете обратиться к документы :

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
            }];
        }
    }

}];
3 голосов
/ 04 сентября 2012

Это занимает много времени из-за следующих шагов:

1) получить идентификатор друга, используя:

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

2) поставить идентификатор пользователя для получения идентификатора альбома:

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) затем введите идентификатор альбома, чтобы получить изображение из этого альбома:

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"];

Пожалуйста, скажите мне другой способ получить изображение профиля большого размера за один шаг, чтобы сэкономить время.

0 голосов
/ 05 февраля 2016

Новый код разработчиков Facebook:

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

Последние документы по API Graph Facebook

...