首页 > 解决方案 > 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);
}

我的目标是简单地返回日历是否设置为公开。

感谢您的帮助!

标签: google-apps-scriptgoogle-apigoogle-calendar-api

解决方案


知道日历是否公开的最简单方法是尝试使用 api 密钥访问日历,如果它是公开的,您将获取信息,如果不是,您将收到无法访问错误消息。

如果您不喜欢错误消息,那么您可以接受您现在的请求并循环通过您的每个日历请求

Acl:列表

此响应包含资源列表

{
  "kind": "calendar#aclRule",
  "etag": etag,
  "id": string,
  "scope": {
    "type": string,
    "value": string
  },
  "role": string
}

Scope 将告诉您它是什么类型的日历,如果它是默认(公共)日历或用户、组或域日历。


推荐阅读