Я открыл канал push-уведомлений для CalendarList
, Google уведомляет мое приложение о добавлении / удалении / скрытии элементов в списке, но не об изменениях самих элементов.
Push-уведомления документы упомянуть, что только Acl
, CalendarList
, Events
, а также Settings
можно смотреть. Я пытался зарегистрироваться CalendarList
список каналов, предоставляющий идентификатор определенного календаря, но это, похоже, не работает.
Можно ли следить за изменениями других свойств календарей, таких как сводка?
Мне кажется, что альтернативой будет периодическая синхронизация всех зарегистрированных учетных записей. Но тогда как я могу гарантировать, что пользователи будут видеть календари с последними изменениями, когда они им нужны? Я могу запускать синхронизацию фона каждый раз, когда отображаются календари, возможно, с некоторым регулированием. Однако это не выглядит как очень хорошее решение.
Есть ли другой способ поддерживать локально сохраненные календари в актуальном состоянии?
К сожалению, нет возможности следить за изменениями свойств календарей. И календарь Google не совсем соответствует уведомлениям об изменениях. Уведомления могут прийти через несколько минут.
Я сохраняю копии событий и всякий раз, когда происходит обновление, я смотрю на разницу между событием копирования в моей базе данных и входящим обновлением и решаю, нужно ли пользователям видеть это обновление. Чтобы поддерживать локально сохраненные календари в актуальном состоянии, я открываю канал push-уведомлений для календарей, а также периодически проверяю — из-за несогласованности — чтобы убедиться, что что-то изменилось.
Вы также можете проверить мой ответ о периодической синхронизации в Получить информацию о событии из идентификатора ресурса в push-уведомлении Google Calendar.
Других решений пока нет …