Задержка в Facebook графике API-ответов - PullRequest
0 голосов
/ 10 марта 2011

Я использую график API в iOS. Я отправляю запрос каждому из друзей пользователя в FB для их текущих событий:

для (NSDictionary * друг в друзьях) {

        NSLog(@"sending events request for %@", [friend objectForKey:@"id"]);
        [facebook requestWithGraphPath:
         [NSString stringWithFormat:@"%@/events&since=today&until=tomorrow&limit=10", [friend objectForKey:@"id"]]
                           andDelegate:self];
    }

для первого ответа задержка 5 секунд и последний ответ приходит через две (!!) минуты или около того (для 500 запросов - 500 друзей).

Фейсбук делает эту задержку специально или есть другая возможность получить всю информацию сразу?

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 10 марта 2011

Мне интересно, знаете ли вы о пакетном API Facebook?Он предназначен для использования, когда вы будете делать несколько запросов.Я провел краткий поиск, но не могу найти хорошую ссылку, на которую можно было бы указать, поэтому я рекомендую просто погуглить немного глубже.

Еще одна вещь, которую следует учитывать, - это помещать ваши веб-запросы в другую ветку, которую вы запускаете.в фоновом режиме, уведомление вашего основного потока (с пользовательским интерфейсом), когда новые данные доступны, чтобы ваш дисплей мог быть обновлен.Как говорит ceejayoz, 500 запросов - это много, скорее всего, есть ограничение скорости.Использование потока не сделает ваши дела более приятными с их точки зрения, но вы сможете свести к минимуму влияние на пользователей, которое вызывает задержка.

0 голосов
/ 09 июля 2011

Подробности о пакетном API Facebook:

https://developers.facebook.com/docs/reference/api/batch/

Также на этот вопрос SO есть хороший ответ о том, как использовать SDK Facebook iOS для выполнения пакетного запроса:

Соединение Facebook с пакетными запросами и проблема с ошибкой FQL

Обратите внимание, что Batch Api в настоящее время допускает максимум 20 запросов на пакет, поэтому вам все равно придется сделать 25 запросов (500 /20).

...