google-apps-script - Google 日历访问权限
问题描述
我正在尝试使用 Google Apps 脚本创建一个脚本,该脚本将允许我确定特定日历是否设置为公开。
我在高级日历服务文档中找到了以下内容,该文档列出了用户日历列表中显示的日历。即使我只是简单地记录变量日历,我也没有看到任何信息告诉我日历是否设置为公开。
function listCalendars() {
var calendars;
var pageToken;
do {
calendars = Calendar.CalendarList.list({
maxResults: 100,
pageToken: pageToken,
});
if (calendars.items && calendars.items.length > 0) {
for (var i = 0; i < calendars.items.length; i++) {
var calendar = calendars.items[i];
Logger.log('%s (ID: %s)', calendar.summary, calendar.id);
}
} else {
Logger.log('No calendars found.');
}
pageToken = calendars.nextPageToken;
} while (pageToken);
}
我的目标是简单地返回日历是否设置为公开。
感谢您的帮助!
解决方案
知道日历是否公开的最简单方法是尝试使用 api 密钥访问日历,如果它是公开的,您将获取信息,如果不是,您将收到无法访问错误消息。
如果您不喜欢错误消息,那么您可以接受您现在的请求并循环通过您的每个日历请求
此响应包含资源列表
{
"kind": "calendar#aclRule",
"etag": etag,
"id": string,
"scope": {
"type": string,
"value": string
},
"role": string
}
Scope 将告诉您它是什么类型的日历,如果它是默认(公共)日历或用户、组或域日历。
推荐阅读
- r - 如何从随机分布中生成和采样,以适应 R 中的观察值?
- javascript - 使用 selenium 的 javascript 自动化
- react-native - React 原生自定义日历列表
- firebase - Firebase authentification without login
- javascript - 如何在 HTML 中制作可编辑的段落?
- oracle - 解析csv文件并将内容作为sql plus中的clob对象放入表中
- javascript - 用 JavaScript 隐藏 HTML 中的类?
- hibernate - 如何使用网络存储多对多映射休眠
- botframework - 当我们在 spfx bot 扩展中使用 Adaptivecards Fabric UI 时无法提供输入
- directx-11 - 阴影贴图将未应用阴影贴图的风景放入阴影中