Google日历观看和活动协同工作

时间:2017-01-03 08:34:49

标签: events push-notification google-calendar-api

我正在创建一个可以镜像用户日历的Node / Express Webapp。它会收到用户日历中每个更改的通知,并会使用该用户的最新日历更新数据库。

让我们假设我们要监控john.doe@gmail.com。请告诉我这是否是最好(也是唯一)的方法:

  1. 设置为Push notification - 在执行此操作时,我们提供(以及其他字段):

    • 令牌 - 一个可以回传的纯文本。 这是我可以放置像calOwner = john.doe@gmail.com'
    • 这样的地方
    • id - UUID频道ID
  2. 每次更改后,我的webhook都会收到包含以下内容的推送通知:

    • 令牌:calOwner=john.doe@gmail.com
    • id :channelId - 我不明白是否可以单独使用此字段将此通知消息追溯回john.doe@gmail.com
  3. 现在我知道john.doe@gmail.com已经改变,我会用list进行synchToken。这将返回自上次同步以来约翰日历中的更改

  4. 令我感到困惑的是,看似重要的字段 channelId resourceId (在 x-goog-resource-id 中显示为推送通知标题)没用,将push消息与list绑定的唯一字段是可选纯文本字段标记。< / p>

    请告诉我这是否是跟踪用户日历的唯一方法。

    更新

    感谢@KENdi的回答。

    我的斗争是,只需查看推送通知消息,就无法将其追溯到john.doe@gmail.com。我现在明白为什么会这样,推送通知不包含calendarId,而是包含resourceId(简单来说就是事件对象)。之所以如此,是因为事件可以与多个日历相关联,因此可以与多个calendarId相关联。因此,订户有责任维护频道与他在第一时间用于创建频道的calendarId的关联。

1 个答案:

答案 0 :(得分:0)

是的,您是正确的,需要日历push notification,以通知您Google日历中发生的所有更改。

X-Goog-Resource-ID的目的是一个不透明的值,用于标识受监视的资源。此API在API版本中保持稳定。

选中此SO question以了解有关X-Goog-Resource-Id

目的的更多信息