#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
если никакие задачи в списке не изменились. (Это также не должно работать при опросе отдельных задач)
Таким образом, вы можете эффективно опрашивать задачи, которые изменились с момента последней синхронизации.