google-api - 修改日历信息(名称、描述等)后 Google 日历 ETag 未更新
问题描述
我使用 Google Calendar API v3 来检索用户的CalendarList
,每个都CalendarListEntry
包含有关日历的基本信息,例如摘要(标题)、描述等。
返回的CalendarListEntry
有一个属etag
性,根据 Google 文档,每当修改日历时,该属性都应该更改。
但在测试期间,我更改了我的 Google 日历的名称、描述等,它们根本不会触发任何etag
更新。
那么,如何在不与我的应用程序中的本地副本进行全面比较的情况下找出日历的信息(不是事件,而是日历的元数据,如标题等)是否发生了变化?
解决方案
这可能是一个错误
此问题已在此处报告:
也许这是一个错误。去给它一个 ☆ 让谷歌知道它会影响你。
解决方法
虽然 CalendarListlist
请求 etag 不反映日历名称的更改,但 Calendarget
请求可以。
https://developers.google.com/calendar/v3/reference/calendars/get
- 列出日历
- 遍历 ID 并为每个日历发出一个简单的 get 请求。
更新
没有注意到文档中涵盖了对 etags 的非通用支持:
每个资源都有一个版本字段,每次资源更改时都会更改 - etag 字段。Etag 是 HTTP 的标准部分,日历 API 支持以下两种情况:
- 关于资源修改,以确保在此期间没有其他对该资源的写入(条件修改)
- 在资源检索上仅在资源已更改时检索资源数据(条件检索)
所以这不是一个错误,它是“按预期工作”。
如果要更改此设置,则需要提交功能请求!
推荐阅读
- reactjs - Jest / React 测试库:是否可以像 Cypress 一样监视和等待 GraphQL 查询?
- django - 在 Django 服务器和 android 应用程序之间进行简单 API 调用的最佳方式?
- video - 如何在多个文件中下载 XHR 分割视频(youtube-dl 无法识别视频平台/URL)
- wordpress - 在 Wordpress 的用户元表中复制元键的值
- google-sheets - 在表格中导入 Feed
- amazon-web-services - 使用 CloudFront 静态网站使用 AWS S3 进行 SEO 重复内容
- jupyter - Jupyter notebooks - 如何更改不同幻灯片类型的单元格颜色?
- python - 如何使用 AJAX 或类似方法将 HTML 表单数据发送到 Python 服务器?
- php - 可以使用关键字 global 和 PHP 函数中的超全局变量来创建全局变量吗?
- javascript - React Native:如何在功能组件中包含构造函数?