Вы можете выполнять пакетные запросы с помощью iOS iOS SDK Facebook, но вам нужно подготовить запросы JSON самостоятельно. Вот пример:
- Сначала создайте строку массива JSON, содержащую 2 запроса JSON (см. http://developers.facebook.com/docs/api/batch).. Вы можете использовать предпочитаемый JSON API для создания этих строк.
- Во-вторых, создайте словарь параметров с ключом "batch", сопоставленным со строкой запросов JSON.
- Затем отправьте запрос. Обратите внимание, что вам нужно поместить что-то в requestWithGraphPath. Я просто поставил «я» (этот запрос НЕ рассматривается). Вы также ДОЛЖНЫ отправить его как метод POST http.
- Наконец, дождитесь ответа массива в запросе: didLoad.
-(void) prepareMyBatchRequest {
NSString *jsonRequest1 = @"{ \"method\": \"GET\", \"relative_url\": \"me/friends\" }";
NSString *jsonRequest2 = @"{ \"method\": \"GET\", \"relative_url\": \"me/albums\" }";
NSString *jsonRequestsArray = [NSString stringWithFormat:@"[ %@, %@ ]", jsonRequest1, jsonRequest2];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObject:jsonRequestsArray forKey:@"batch"];
[facebook requestWithGraphPath:@"me" andParams:params andHttpMethod:@"POST" andDelegate:self];
}
- (void)request:(FBRequest *)request didLoad:(id)result {
NSArray *allResponses = result;
for ( int i=0; i < [allResponses count]; i++ ) {
NSDictionary *response = [allResponses objectAtIndex:i];
int httpCode = [[response objectForKey:@"code"] intValue];
NSString *jsonResponse = [response objectForKey:@"body"];
if ( httpCode != 200 ) {
NSLog( @"Facebook request error: code: %d message: %@", httpCode, jsonResponse );
} else {
NSLog( @"Facebook response: %@", jsonResponse );
}
}
}
Относительно вашего другого вопроса, я не знаю (попробуйте задать другие вопросы в отдельных постах, чтобы было легче следить).