保持重复事件的实例同步

时间:2016-09-22 13:21:40

标签: google-calendar-api

我一整天都在努力弄清楚如何补水"来自我的应用程序的定期事件的实例。

让我快速解释一下这个流程:

  1. 用户授予访问我的应用以修改其日历的权限
  2. 该应用设置了定期活动
  3. 该应用订阅了该日历的/watch端点
  4. 到目前为止一切顺利,现在当创建者将该事件移动到另一个时间时,我会在webhook网址上收到通知,这很好(好吧,排序),它看起来像这样:

      'x-goog-channel-id': 'my_specified_channel_id',
      'x-goog-channel-expiration': 'Thu, 29 Sep 2016 12:58:10 GMT',
      'x-goog-resource-state': 'exists',
      'x-goog-message-number': '333384',
      'x-goog-resource-id': 'some-resource-id',  // This id apparently has nothing to do with any resources I know of
      'x-goog-resource-uri': 'https://www.googleapis.com/.../resource-uri'
    

    所以我认为我可以致电https://www.googleapis.com/calendar/v3/calendars/primary/events/some-resource-id并获取更新的资源,但resource-id似乎与日历中的任何事件无关,也不是日历本身的ID(我使用'primary'关键字)

    所以我想,我可以使用https://www.googleapis.com/calendar/v3/calendars/primary/events/recurring-event-id/instances端点来解决周期性事件的所有实例,但现在移动的事件不再是该有效负载的一部分了。我猜谷歌会从父事件中删除该事件,因为它不再发生在一天的同一时间(我无法在任何地方确认这一点)?

    所以我要问的是:

    1. 我是否解释x-goog-resource-id错误?
    2. 有人可以确认,一旦从Google日历应用中编辑了某个事件,它就会失去与周期性父母事件的关系吗?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:

  1. x-goog-resource-id是日历的标识符,因为这是您将观察者放在上面的实体
  2. 一旦编辑了定期集合中的一个事件,它就不再是该集合的一部分