如何在用户的日历列表中跟踪日历的更改?

时间:2017-10-28 18:12:43

标签: php google-api google-calendar-api webhooks watch

我为CalendarList打开了推送通知渠道。 Google通知我的应用有关在列表中添加/删除/隐藏项目的信息,但不会通知项目本身的更改。

Push notifications docs提到只能观看AclCalendarListEventsSettings。我尝试注册CalendarList列表频道,提供特定日历的ID,但这似乎不起作用。

是否可以关注日历的其他属性的更改,例如摘要?

在我看来,另一种方法是执行所有注册帐户的定期同步。但是,如何确保用户在需要时看到具有最新更改的日历?我可以在每次显示日历时触发后台同步,也许会有一些限制。然而,这看起来不是一个非常好的解决方案。

还有其他方法可以让本地存储的日历保持最新状态吗?

1 个答案:

答案 0 :(得分:2)

不幸的是,没有办法观察日历属性的变化。 Google日历与更改通知并不完全一致。通知可能会在几分钟后发出。

我保留事件的副本,每当有更新时,我会查看数据库中的复制事件与传入更新之间的区别,并确定用户是否需要查看此更新。为了使本地存储的日历保持最新,我打开日历的推送通知渠道,并定期检查 - 因为不一致 - 看看是否有任何变化。

您还可以在Get event info from resource id on push notification google calendar中查看有关定期同步的答案。