Права доступа к Календарю Google - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь создать скрипт с помощью Google Apps Script, который позволит мне определить, является ли определенный календарь общедоступным или нет.

В документации по Advanced Calendar Services я обнаружил следующее: в нем перечислены календари, показанные в списке календарей пользователя.Даже если я просто регистрирую переменные календари, я не вижу никакой информации, которая говорит мне, установлен ли календарь на общедоступный или нет.

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);
}

Моя цель состоит в том, чтобы просто возвращать или нет календарьустановлено на общедоступное или нет.

Спасибо за помощь!

1 Ответ

0 голосов
/ 22 мая 2018

Самый простой способ узнать, является ли календарь общедоступным или нет, состоит в том, чтобы попытаться получить доступ к календарю с помощью ключа API, если его общедоступный, вы получите информацию обратно, если нет, вы получите сообщение об ошибке отсутствия доступа.

Если вам не нравятся сообщения об ошибках, вы можете принять запрос, который у вас есть, и выполнить цикл, каждый из ваших календарей запрашивает

Acl: список

, этот ответ содержитсписок ресурсов

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

Область действия скажет вам, что это за календарь, если он используется по умолчанию (общедоступный) или календарь пользователя, группы или домена.

...