Создание нескольких календарей Google и обход 403: превышен лимит

Мне нужно создать до 130 календарей в учетной записи Google, используя Java и API Календаря Google, но я продолжаю получать

"403: Превышен предел скорости".

Что я пробовал:

-перемещение с service.insert(calendar).execute(); -> результат: я получаю ошибку 403 после 25 вставок (что, как ни странно, похоже на старое ограничение, должно быть 60 в соответствии с: https://support.google.com/a/answer/2905486?hl=en)

-перемещение с задержкой между каждым запросом (до 60 секунд) -> результат: не изменил результат. по-прежнему 403 после 25 вставок (в своей документации об экспоненциальном отсрочке Google говорит о простых секундах, поэтому я должен думать, что достаточно одной целой минуты, даже если я не увеличиваю экспоненциально эту задержку).

- Запросить пакетирование (следуя Этому примеру с кодом Google) -> результат: после примерно 10 обратных вызовов ответ попадает в метод onFailure с помощью.. Вы угадали 403 кода состояния.

Я думаю, что в большинстве случаев я нахожусь в пределах своих (максимальных) квот API. Я видел quotaExceeded только один раз после нескольких тестов.

Пакетный образец запроса:

batch = this.service.batch();
JsonBatchCallback<Calendar> callback = new JsonBatchCallback<Calendar>(){
    @Override
    public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders) throws HttpResponseException{
    log.debug(e);
    throw new HttpResponseException(Integer.valueOf(e.get("code").toString()), e.getMessage());
    }
    @Override
    public void onSuccess(Calendar cal, HttpHeaders responseHeaders) {
    log.debug("Calendrier créé pour " + cal.getSummary());
    }
};

for( String user : usernameList ) {
    cal = new Calendar().setSummary(user);
    this.service.calendars().insert(cal).queue(batch, callback);
}
batch.execute();

0 ответов

Другие вопросы по тегам