You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何区分Google Calendar API响应中的辅助日历与共享日历

Google Calendar List API 自有/共享日历区分方案

你遇到的是Google Calendar API非常典型的权限字段设计坑:当用户被授予「Make Changes and Manage Sharing」权限时,Calendar List接口返回的accessRole确实会显示为owner,但这个字段只代表当前用户对日历的操作权限,不代表日历的实际归属,不能作为判断所有权的依据。

常规场景快速判断

如果你的业务场景不需要覆盖「他人共享自有辅助日历」的边缘情况,可以直接通过日历ID格式做快速筛选:

  • 当前用户的主日历:ID为当前授权用户的邮箱地址,返回字段带"primary": true标识,无识别难度
  • 当前用户的自有辅助日历:ID固定为[随机生成字符串]@group.calendar.google.com格式
  • 他人共享的个人主日历:ID为对方的个人邮箱地址(比如你示例里的user1@gmail.com)

注意:该方案无法识别「用户A把自己的辅助日历共享给用户B」的场景,这类共享日历的ID同样是@group.calendar.google.com后缀,会被误判为用户B的自有辅助日历。

100%准确判断方案

要完全精准区分两类日历,必须补充调用单日历详情接口做校验,没有其他捷径:

  1. 先遍历Calendar List接口返回的所有条目,过滤掉带"primary": true的主日历
  2. 对剩余所有条目,调用calendars.get接口,传入对应条目的id作为请求参数
  3. 对比接口返回结果中的creator.email字段和当前授权用户的邮箱:
    • 字段值和当前用户邮箱一致:为当前用户的自有辅助日历
    • 字段值和当前用户邮箱不一致:为其他用户共享过来的日历

这个判断逻辑是官方约定的所有权判定规则,不会出现误判。


内容的提问来源于stack exchange,提问作者Sid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 15:15:33