Обработка изменений в пользовательских Задачах 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 если задачи в списке не изменились. (Не то, что также должно работать при опросе отдельных задач)

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

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