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

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

问题描述:

我打开了CalendarList的推送通知通道。 Google通知我的应用程序关于在列表中添加/删除/隐藏项目,而不是关于项目本身的更改。如何跟踪用户日历列表中的日历更改?

Push notifications docs提及只有Acl,CalendarList,EventsSettings可以被观看。我试图注册CalendarList列表频道提供特定日历的ID,但似乎没有工作。

是否可以监视日历的其他属性的变化,如摘要?

在我看来,替代方案是对所有注册账户进行定期同步。但是,如何确保用户在需要日历时能够看到具有最新更改的日历?每次显示日历时,我都可以触发后台同步,可能会有一些限制。但是,这看起来不是一个很好的解决方案。

是否有任何其他方式来保持本地存储的日历是最新的?

+0

您可以查看[来自G Suite管理员支持的此帖子](https://support.google.com/a/answer/6110475?hl=zh-CN),了解如何跟踪用户日历中的日历通知和更改,事件和订阅。 –

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

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

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

+0

这就是我处理它的方式。有些更改甚至不会包含在增量同步中,因此我会定期进行完全同步,与本地副本进行比较并更新更改。 – Paul