Обработка изменений в пользовательских Задачах Google с помощью GTasks API
Мы создаем сервис, который будет синхронизироваться с данными пользователя Google Tasks, поэтому если пользователь добавит / отредактирует / удалит задачу в GTask, значит, она будет добавлена / отредактирована / удалена в нашем сервисе.
И есть большая проблема с синхронизацией: как я вижу, GTasks API не предоставляет никаких прослушивателей событий onUpdate/onChange. Я имею в виду, что идеальное решение может быть, если будет метод Google Tasks API, который можно использовать для установки некоторого URL обратного вызова, который будет запрашиваться при добавлении / редактировании / удалении задач пользователя.
Но я не могу найти такой метод в Google Tasks API, поэтому теперь есть только один очень плохой способ синхронизации с Google Tasks API - запрашивать все задачи пользователей и сравнивать их с задачами службы. Это очень плохой способ синхронизации, потому что если у нас есть 10 тыс. Пользователей и мы хотим, чтобы их список задач синхронизировался до 1 минуты, то нам нужно будет делать> 10 тыс. Запросов GTasks API в минуту:(
Я надеюсь, что я не прав, и есть какой-то способ установить обратный вызов onChange/onUpdate для пользовательских задач. Или, может быть, есть какой-то другой способ получить фактическое уведомление об изменениях пользователя GTasks (по электронной почте и т. Д.).
Кто-нибудь знает это? Спасибо.
1 ответ
Вы могли бы использовать updatedMin
параметр, чтобы получить только задачи, которые были обновлены с заданной отметки времени, как описано в документации.
Вы должны быть в состоянии положиться на ETag
а также If-None-Match
заголовки при запросе списков пользовательских задач, чтобы получить 304 Not Modified
если задачи в списке не изменились. (Не то, что также должно работать при опросе отдельных задач)
Таким образом, вы можете эффективно опрашивать задачи, которые изменились с момента последней синхронизации.