如何通过Apps Script获取自有Google日历共享链接并设置订阅权限
Google日历共享链接生成与权限配置解决方案
一、生成共享链接
Google Apps Script的CalendarApp没有直接返回共享链接的内置函数,但可以通过日历ID手动拼接标准的共享链接,就像你已经实现的那样:
const year = 2025; const cal = CalendarApp.getCalendarsByName(year + " Practices")[0]; const calId = cal.getId(); const calLink = `https://calendar.google.com/calendar/u/0?cid=${calId}`;
这个链接可以直接嵌入HTML邮件中,用户点击后就能访问对应日历。
二、配置符合需求的权限
完全可以实现「仅拥有链接的用户可查看/订阅日历、无法修改,且日历不公开」的需求,通过CalendarApp的setSharing()方法即可完成配置:
// 接上面的代码,获取到cal对象后执行 cal.setSharing(CalendarApp.AccessRole.READER, CalendarApp.PublicAccess.NONE);
参数说明:
CalendarApp.AccessRole.READER:授予链接持有者只读权限(可查看事件、订阅日历,但无法修改)CalendarApp.PublicAccess.NONE:将日历设置为非公开状态,只有持有链接的用户才能访问,不会被搜索引擎索引或公开可见
执行这段代码后,你的日历就会满足设定的权限要求,无需将其设为完全公开。
内容的提问来源于stack exchange,提问作者anon3629
相关产品推荐
相关产品推荐

