首页 > 解决方案 > 修改日历信息(名称、描述等)后 Google 日历 ETag 未更新

问题描述

我使用 Google Calendar API v3 来检索用户的CalendarList,每个都CalendarListEntry包含有关日历的基本信息,例如摘要(标题)、描述等。

返回的CalendarListEntry有一个属etag​​性,根据 Google 文档,每当修改日历时,该属性都应该更改。

但在测试期间,我更改了我的 Google 日历的名称、描述等,它们根本不会触发任何etag更新。

那么,如何在不与我的应用程序中的本地副本进行全面比较的情况下找出日历的信息(不是事件,而是日历的元数据,如标题等)是否发生了变化?

标签: google-apigoogle-calendar-apigoogle-api-clientgoogle-api-dotnet-clientgoogle-client

解决方案


这可能是一个错误

此问题已在此处报告:

https://issuetracker.google.com/issues/180946049

也许这是一个错误。去给它一个 ☆ 让谷歌知道它会影响你。

解决方法

虽然 CalendarListlist请求 etag 不反映日历名称的更改,但 Calendarget请求可以。

https://developers.google.com/calendar/v3/reference/calendars/get

  • 列出日历
  • 遍历 ID 并为每个日历发出一个简单的 get 请求。

更新

没有注意到文档中涵盖了对 etags 的非通用支持:

每个资源都有一个版本字段,每次资源更改时都会更改 - etag 字段。Etag 是 HTTP 的标准部分,日历 API 支持以下两种情况:

  • 关于资源修改,以确保在此期间没有其他对该资源的写入(条件修改)
  • 在资源检索上仅在资源已更改时检索资源数据(条件检索)

所以这不是一个错误,它是“按预期工作”。

如果要更改此设置,则需要提交功能请求!


推荐阅读