【问题标题】:How to track changes of calendars in the user's calendar list?如何跟踪用户日历列表中日历的变化?
【发布时间】:2017-10-28 18:12:43
【问题描述】:

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

Push notifications docs 提及只有AclCalendarListEventsSettings 可以观看。我尝试注册CalendarList list channel 提供特定日历的 id,但这似乎不起作用。

是否可以观察日历其他属性的变化,例如摘要?

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

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

【问题讨论】:

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


【解决方案1】:

很遗憾,无法查看日历属性的变化。而且 Google 日历与更改通知并不完全一致。几分钟后可能会收到通知。

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

你也可以在Get event info from resource id on push notification google calendar查看我关于定期同步的回答。

【讨论】:

  • 我就是这样处理的。有些更改甚至不会包含在增量同步中,因此我会定期进行完全同步,与本地副本进行比较并更新更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多