如何通过Google Calendar API向其他用户发送日历访问请求?
如何通过Google Calendar API发送日历访问请求
嘿,完全可以通过API实现这个功能!你之前没找到是因为这个功能藏在ACL(Access Control List)接口里,而不是单独的“发送请求”接口。本质上,发送访问请求就是给目标用户添加一条日历权限规则,并触发系统自动发送邀请邮件。
下面是具体的实现步骤:
核心思路
当你调用ACL接口添加权限规则时,只要指定sendNotifications=true参数,Google Calendar就会自动向目标用户发送包含访问链接的邮件邀请,对方点击确认后就能获得对应的日历访问权限。
具体API调用示例
请求端点
发送POST请求到:
https://www.googleapis.com/calendar/v3/calendars/{calendarId}/acl
替换{calendarId}为你要共享的日历ID(通常是你的邮箱地址,或者特定日历的唯一ID)。
请求参数
必须添加sendNotifications=true作为查询参数,这是触发邮件邀请的关键。
请求体(JSON格式)
根据你要授予的权限,设置对应的role和目标用户的scope:
{ "role": "writer", // 可选值:reader(只读)、writer(可编辑)、owner(所有者)等 "scope": { "type": "user", "value": "target-user@example.com" // 目标用户的邮箱地址 } }
权限要求
确保你的应用已经获得了用户的授权,需要的OAuth 2.0权限范围是:
https://www.googleapis.com/auth/calendar(完整日历权限,推荐)- 或者更精细的
https://www.googleapis.com/auth/calendar.acl(仅ACL管理权限)
注意事项
- 如果目标用户已经拥有该日历的对应权限,重复调用会返回409冲突错误,建议先调用ACL列表接口(
GET /calendars/{calendarId}/acl)检查权限状态。 - 不同的
role对应不同的访问权限,根据你的需求选择合适的角色,避免过度授权。
内容的提问来源于stack exchange,提问作者julika Zen
相关产品推荐
相关产品推荐

