Обработка изменений в пользовательских задачах Google с использованием GTasks API

#google-calendar-api #google-tasks

#google-calendar-api #google-задачи

Вопрос:

Мы создаем сервис, который будет синхронизироваться с данными пользовательских задач Google, поэтому, если пользователь добавит / отредактирует / удалит задачу в GTask, она будет добавлена / отредактирована / удалена в нашем сервисе.

И есть большая проблема с синхронизацией: как я вижу, GTasks API не предоставляет никаких прослушивателей событий onUpdate / onChange. Я имею в виду, что идеальным решением может быть, если будет метод API задач Google, который можно использовать для установки некоторого URL обратного вызова, который будет запрашиваться при добавлении / редактировании / удалении задач пользователем.

Но я не могу найти такой метод в Google Tasks API, поэтому сейчас есть только один очень плохой способ синхронизации с Google Tasks API — запрашивать все задачи пользователей и сравнивать их с задачами сервиса. Это очень плохой способ синхронизации, потому что, если у нас 10 тысяч пользователей и мы хотим, чтобы их список задач синхронизировался до 1 минуты, нам нужно будет отправлять > 10 тысяч запросов GTasks API в минуту : (

Я надеюсь, что я ошибаюсь, и есть какой-то способ настроить обратный вызов onChange / onUpdate для пользовательских задач. Или, может быть, есть какой-то другой способ получать фактические уведомления об изменениях пользовательских GTasks (по электронной почте и т.д.).

Кто-нибудь знает это? Спасибо.

Ответ №1:

Вы могли бы использовать updatedMin параметр только для получения задач, которые были обновлены с момента заданной временной метки, как описано в документации.

Вы должны иметь возможность полагаться на ETag и If-None-Match заголовки при запросе списков пользовательских задач, чтобы получить, 304 Not Modified если никакие задачи в списке не изменились. (Это также не должно работать при опросе отдельных задач)

Таким образом, вы можете эффективно опрашивать задачи, которые изменились с момента последней синхронизации.