Не получая все фотографии, пользователь отмечен в Facebook - PullRequest
1 голос
/ 24 сентября 2011

Я сравниваю свои результаты с проводником графика API. У меня есть фиктивная учетная запись с 6 моими помеченными фотографиями. От iOs, использующих FBGraph, я получаю токен доступа с разрешением "user_photos"

При звонке мне / фото я получаю только одно фото.

Если я сгенерирую токен доступа из Graph Api Explorer с тем же разрешением "user_photos", я вернусь ко всем 6 фотографиям.

Может кто-нибудь просветить меня, почему я не получаю все фотографии, на которых я отмечен.

Привет

1 Ответ

1 голос
/ 20 мая 2012

вы не получаете фотографии из альбомов, вы получаете только фотографии без альбомов.получите список альбомов, с чем-то вроде этого:

   - (NSMutableArray*)getAlbums{
NSLog(@"get pictures");
NSMutableArray* _albums = [[NSMutableArray alloc] init];
NSString* requestString = [NSString stringWithFormat:@"%@/%@/albums?access_token=%@",FACEBOOK_GRAPH_URL,[defaults valueForKey:@"facebook_id"],[defaults objectForKey:@"FBAccessTokenKey"]];
ASIHTTPRequest* request = [[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:requestString]];
[request startSynchronous];
SBJSON *parser = [[SBJSON alloc] init];
NSDictionary *dddd = (NSDictionary *) [parser objectWithString:[request responseString] error:nil];
NSDictionary *data = [dddd objectForKey:@"data"];
for(NSDictionary* k in data){
    NSLog(@"album %@, count %@",[k valueForKey:@"id"],[k valueForKey:@"count"]);
    if([k valueForKey:@"count"] && [[k valueForKey:@"count"] intValue] > 0)
        [_albums addObject:[NSMutableDictionary dictionaryWithDictionary:k]];
}
for(NSMutableDictionary* album in _albums){
    NSMutableArray* a = [self getPicturesForAlbum:[album valueForKey:@"id"]];
    [album setValue:a forKey:@"photos"];
}
return _albums;

}

вы получите NSArray из NSDictionaries, и в каждом массиве фотографий как словарь, как вы получаете их изfacebook в функции, которую вы описали выше.

   - (NSMutableArray*)getPicturesForAlbum:(NSString*)albumNo{
NSLog(@"get pictures");
NSMutableArray* pics = [[NSMutableArray alloc] init];
NSString* requestString = [NSString stringWithFormat:@"%@/%@/photos?access_token=%@",FACEBOOK_GRAPH_URL,albumNo,[defaults objectForKey:@"FBAccessTokenKey"]];
ASIHTTPRequest* request = [[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:requestString]];
[request startSynchronous];
SBJSON *parser = [[SBJSON alloc] init];
NSDictionary *dddd = (NSDictionary *) [parser objectWithString:[request responseString] error:nil];
NSDictionary *data = [dddd objectForKey:@"data"];
for(NSDictionary* k in data){
    for(id i in [k allKeys]){
        if([i isEqualToString:@"source"]){
            NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
            [dict setValue:[k valueForKey:i] forKey:@"photo"];
            [dict setValue:[k valueForKey:@"created_time"] forKey:@"created_time"];
            [dict setValue:[k valueForKey:@"picture"] forKey:@"thumb"];
            if([k valueForKey:@"name"])
                [dict setValue:[k valueForKey:@"name"] forKey:@"name"];
            [pics addObject:dict];
        }
    }        
}
return pics;

}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...