我正在创建一个可以镜像用户日历的Node / Express Webapp。它会收到用户日历中每个更改的通知,并会使用该用户的最新日历更新数据库。
让我们假设我们要监控john.doe@gmail.com。请告诉我这是否是最好(也是唯一)的方法:
设置为Push notification - 在执行此操作时,我们提供(以及其他字段):
每次更改后,我的webhook都会收到包含以下内容的推送通知:
现在我知道john.doe@gmail.com已经改变,我会用list进行synchToken。这将返回自上次同步以来约翰日历中的更改
令我感到困惑的是,看似重要的字段 channelId 和 resourceId (在 x-goog-resource-id 中显示为推送通知标题)没用,将push消息与list绑定的唯一字段是可选纯文本字段标记。< / p>
请告诉我这是否是跟踪用户日历的唯一方法。
更新
感谢@KENdi的回答。
我的斗争是,只需查看推送通知消息,就无法将其追溯到john.doe@gmail.com。我现在明白为什么会这样,推送通知不包含calendarId,而是包含resourceId(简单来说就是事件对象)。之所以如此,是因为事件可以与多个日历相关联,因此可以与多个calendarId相关联。因此,订户有责任维护频道与他在第一时间用于创建频道的calendarId的关联。
答案 0 :(得分:0)
是的,您是正确的,需要日历push notification,以通知您Google日历中发生的所有更改。
X-Goog-Resource-ID
的目的是一个不透明的值,用于标识受监视的资源。此API在API版本中保持稳定。
选中此SO question以了解有关X-Goog-Resource-Id
。