Области применения

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

В этом процессе запрос сообщает пользователю, на какие действия приложение запрашивает разрешение. Например, надстройке может потребоваться разрешение на чтение сообщений электронной почты пользователя или создание событий в его календаре. Проект скрипта надстройки определяет эти отдельные разрешения как области действия OAuth .

Области действия объявляются в манифесте с помощью строк URL. В процессе авторизации Apps Script представляет пользователю понятное человеку описание области действия. Например, ваше дополнение Google Workspace может использовать область действия «Чтение текущего сообщения», которая в манифесте указана как https://www.googleapis.com/auth/gmail.addons.current.message.readonly . В процессе авторизации дополнение с этой областью действия запрашивает у пользователя разрешение на просмотр сообщений электронной почты во время работы дополнения .

Просмотр областей

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

  1. Откройте проект скрипта.
  2. Слева нажмите Обзор .
  3. Просмотрите области действия в разделе «Области действия OAuth проекта».

Вы также можете просмотреть текущие области действия проекта скрипта в манифесте проекта в поле oauthScopes , но только в том случае, если вы явно задали эти области действия.

Установка явных областей действия

Apps Script автоматически определяет области действия, необходимые скрипту, сканируя его код на наличие вызовов функций, которым они необходимы. Для большинства скриптов этого достаточно и экономит время, но для опубликованных дополнений следует осуществлять более прямой контроль областей действия.

Например, Apps Script может по умолчанию предоставить проекту скрипта дополнения весьма разрешительную область действия https://mail.google.com . Когда пользователь авторизует проект скрипта с этой областью действия, проекту предоставляется полный доступ к учётной записи Gmail пользователя. Для опубликованных дополнений необходимо заменить эту область действия на более ограниченную, охватывающую только потребности самого дополнения.

Вы можете явно задать области действия, используемые вашим проектом скрипта, отредактировав его файл манифеста . Поле манифеста oauthScopes представляет собой массив всех областей действия, используемых дополнением. Чтобы задать области действия вашего проекта, выполните следующие действия:

  1. Просмотрите области действия, которые в настоящее время использует ваше дополнение . Определите, какие изменения необходимо внести, например, использовать более узкую область действия.
  2. Откройте файл манифеста вашего дополнения .
  3. Найдите поле верхнего уровня с надписью oauthScopes . Если его нет, вы можете его добавить.
  4. Поле oauthScopes содержит массив строк. Чтобы задать области действия, используемые вашим проектом, замените содержимое этого массива на нужные вам области действия. Например, для надстройки Google Workspace, расширяющей возможности Gmail, может быть следующее:

    {
      ...
      "oauthScopes": [
        "https://www.googleapis.com/auth/gmail.addons.current.message.metadata",
        "https://www.googleapis.com/auth/userinfo.email"
      ],
      ...
    }
    
  5. Сохраните изменения файла манифеста.

Проверка OAuth

Использование некоторых конфиденциальных областей OAuth может потребовать от вашего дополнения пройти проверку клиента OAuth перед его публикацией. Подробнее см. в следующих руководствах:

Ограниченные области применения

Некоторые области действия ограничены и регулируются дополнительными правилами, помогающими защитить данные пользователей. Если вы планируете опубликовать дополнение Gmail или Редактора, использующее одну или несколько ограниченных областей действия, оно должно соответствовать всем указанным ограничениям перед публикацией.

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

Расширение Google Workspace Developer Tools для Visual Studio Code предоставляет диагностическую информацию для всех областей, включая описание области и информацию о том, является ли она конфиденциальной или ограниченной.

Выберите области действия для дополнений Google Workspace

В следующих разделах приведены области, которые обычно используются для надстроек Google Workspace.

Редактор областей

Ниже приведены часто используемые области действия для дополнений Google Workspace, расширяющих возможности Docs, Sheets и Slides.

Объем
Текущий доступ к файлам Docs https://www.googleapis.com/auth/documents.currentonly

Требуется, если дополнение обращается к API Apps Script Docs. Предоставляет временный доступ к содержимому открытого документа.

Доступ к файлам текущих таблиц https://www.googleapis.com/auth/spreadsheets.currentonly

Требуется, если дополнение обращается к API Apps Script Sheets. Предоставляет временный доступ к содержимому открытой электронной таблицы.

Доступ к файлам текущих слайдов https://www.googleapis.com/auth/presentations.currentonly

Требуется, если дополнение обращается к API Apps Script Slides. Предоставляет временный доступ к содержимому открытой презентации.

Доступ к каждому файлу https://www.googleapis.com/auth/drive.file

Требуется для использования надстройкой onFileScopeGrantedTrigger и доступа надстройки к API Docs, Sheets, Slides или Drive . Предоставляет пофайловый доступ к файлам, созданным или открытым приложением, с помощью Apps Script Advanced Drive Service . Однако это не позволяет выполнять аналогичные действия с использованием базовой службы Drive . Авторизация файлов предоставляется на уровне отдельных файлов и отменяется при деавторизации приложения пользователем.

Gmail

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

Ниже приведены часто используемые области действия для дополнений Google Workspace, расширяющих Gmail. Те, которые отмечены как « Обязательные», должны быть добавлены в манифест дополнений Google Workspace, если ваше дополнение расширяет Gmail.

Не забудьте также заменить очень широкую область действия https://mail.google.com в вашем дополнении на более узкий набор областей, которые допускают необходимые вашему дополнению взаимодействия и не более того.

Объем
Создавать новые черновики https://www.googleapis.com/auth/gmail.addons.current.action.compose

Требуется, если дополнение использует триггеры действий по составлению сообщений . Позволяет дополнению временно создавать новые черновики сообщений и ответов. Подробнее см. в разделе «Создание черновиков сообщений» ; эта область также часто используется с действиями по составлению сообщений . Требуется токен доступа.

Прочитать метаданные открытого сообщения https://www.googleapis.com/auth/gmail.addons.current.message.metadata

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

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

Прочитать открытое содержание сообщения https://www.googleapis.com/auth/gmail.addons.current.message.action

Предоставляет доступ к содержимому открытого сообщения при взаимодействии пользователя, например, при выборе пункта меню надстройки. Требуется токен доступа.

Прочитать содержимое открытой ветки https://www.googleapis.com/auth/gmail.addons.current.message.readonly

Предоставляет временный доступ к метаданным и содержимому открытого сообщения. Также предоставляет доступ к содержимому других сообщений в открытой цепочке. Требуется токен доступа.

Прочитать содержимое любого сообщения и метаданные https://www.googleapis.com/auth/gmail.readonly

Чтение любых метаданных и содержимого электронных писем, включая открытое сообщение. Требуется, если вам нужно прочитать информацию о других сообщениях, например, при выполнении поискового запроса или чтении всей цепочки писем.

Области действия Google Календаря

Ниже приведены часто используемые области действия дополнений Google Workspace, расширяющих возможности Календаря Google.

Объем
Метаданные событий доступа https://www.googleapis.com/auth/calendar.addons.execute

Требуется, если дополнение получает доступ к метаданным событий календаря. Позволяет дополнению получать доступ к метаданным событий.

Чтение данных о событиях, созданных пользователем https://www.googleapis.com/auth/calendar.addons.current.event.read

Требуется, если дополнению необходимо читать данные о пользовательских событиях. Позволяет дополнению получать доступ к данным о пользовательских событиях. Эти данные доступны только в том случае, если поле манифеста addOns.calendar.eventAccess имеет значение READ или READ_WRITE .

Запись данных о событиях, созданных пользователем https://www.googleapis.com/auth/calendar.addons.current.event.write

Требуется, если дополнению необходимо записывать данные о пользовательских событиях. Позволяет дополнению редактировать данные о пользовательских событиях. Эти данные доступны только в том случае, если поле манифеста addOns.calendar.eventAccess имеет значение WRITE или READ_WRITE .

Области действия Google Chat

Для вызова Chat API необходимо пройти аутентификацию как пользователь Google Chat или как приложение Chat . Каждый тип аутентификации требует разных областей действия, и не все методы Chat API поддерживают аутентификацию приложений.

Дополнительную информацию об областях действия чата и типах аутентификации см. в разделе Обзор аутентификации и авторизации API чата.

В следующей таблице показаны часто используемые методы и области действия API чата в зависимости от поддерживаемых типов аутентификации:

Метод Поддерживается аутентификация пользователя Поддерживается аутентификация приложения Поддерживаемые области авторизации
Отправить сообщение С аутентификацией пользователя :
  • chat.messages.create
  • chat.messages
  • chat.import
С аутентификацией приложения :
  • chat.bot
Создать пространство С аутентификацией пользователя :
  • chat.spaces.create
  • chat.spaces
  • chat.import
С аутентификацией приложения и одобрением администратора (доступно в версии Developer Preview ):
  • chat.app.spaces.create
  • chat.app.spaces
Создание и добавление участников в пространство С аутентификацией пользователя :
  • chat.spaces.create
  • chat.spaces
Добавить пользователя в пространство С аутентификацией пользователя :
  • chat.memberships
  • chat.memberships.app
  • chat.import
С аутентификацией приложения и одобрением администратора (доступно в версии Developer Preview ):
  • chat.app.memberships
Перечислите действия или события из чат-пространства При аутентификации пользователя необходимо использовать область действия для каждого типа событий, включенного в запрос:
  • Для событий, связанных с сообщениями:
    • chat.messages
    • chat.messages.readonly
  • Для событий, связанных с реакциями:
    • chat.messages.reactions
    • chat.messages.reactions.readonly
    • chat.messages
    • chat.messages.readonly
  • Для мероприятий, связанных с членством:
    • chat.memberships
    • chat.memberships.readonly
  • Для мероприятий, посвященных космосу:
    • chat.spaces
    • chat.spaces.readonly

Области Google Диска

Ниже приведены часто используемые области действия для дополнений Google Workspace, расширяющих возможности Google Диска.

Объем
Прочитать метаданные выбранного элемента https://www.googleapis.com/auth/drive.addons.metadata.readonly

Требуется, если дополнение реализует контекстный интерфейс, активируемый при выборе пользователем элементов на Диске. Позволяет дополнению считывать ограниченные метаданные об элементах, выбранных пользователем на Google Диске. Метаданные ограничиваются идентификатором элемента, его названием, типом MIME, URL-адресом значка и наличием у дополнения разрешения на доступ к элементу.

Доступ к каждому файлу https://www.googleapis.com/auth/drive.file

Рекомендуется, если дополнению требуется доступ к отдельным файлам на Диске. Предоставляет доступ к файлам, созданным или открытым приложением, с помощью Apps Script Advanced Drive Service . Однако это не позволяет выполнять аналогичные действия с помощью базовой службы Drive . Разрешение на доступ к файлам предоставляется на уровне отдельных файлов и отменяется при деавторизации приложения пользователем.

См. пример запроса доступа к выбранным файлам .

Токены доступа

Для защиты пользовательских данных области действия Gmail, используемые в дополнениях Google Workspace, предоставляют только временный доступ к пользовательским данным. Чтобы включить временный доступ, необходимо вызвать функцию GmailApp.setCurrentMessageAccessToken(accessToken) передав токен доступа в качестве аргумента. Токен доступа необходимо получить из объекта события действия .

Ниже показан пример настройки токена доступа к метаданным сообщения. Для этого примера необходима только область действия https://www.googleapis.com/auth/gmail.addons.current.message.metadata .

function readSender(e) {
  var accessToken = e.gmail.accessToken;
  var messageId = e.gmail.messageId;

  // The following function enables short-lived access to the current
  // message in Gmail. Access to other Gmail messages or data isn't
  // permitted.
  GmailApp.setCurrentMessageAccessToken(accessToken);
  var mailMessage = GmailApp.getMessageById(messageId);
  return mailMessage.getFrom();
}

Другие области применения Google Workspace

Вашему дополнению могут потребоваться дополнительные области действия, если оно использует другие сервисы Google Workspace или Apps Script. В большинстве случаев Apps Script может определить эти области действия и автоматически обновить манифест. При редактировании списка областей действия манифеста не удаляйте области действия, если только вы не заменяете их более подходящей альтернативой, например, более узкой областью действия.

В следующей таблице представлен список областей, которые часто используются надстройками Google Workspace:

Объем
Прочитать адрес электронной почты пользователя https://www.googleapis.com/auth/userinfo.email

Позволяет проекту читать адрес электронной почты текущего пользователя.

Разрешить звонки на внешние службы https://www.googleapis.com/auth/script.external_request

Позволяет проекту выполнять запросы UrlFetch . Это также требуется, если проект использует библиотеку OAuth2 for Apps Script .

Чтение локали и часового пояса пользователя https://www.googleapis.com/auth/script.locale

Позволяет проекту узнать локальные настройки и часовой пояс текущего пользователя. Подробнее см. в разделе Доступ к локальным настройкам и часовому поясу пользователя .

Создать триггеры https://www.googleapis.com/auth/script.scriptapp

Позволяет проекту создавать триггеры .

Предварительный просмотр сторонних ссылок https://www.googleapis.com/auth/workspace.linkpreview

Требуется, если дополнение выполняет предварительный просмотр ссылок из стороннего сервиса. Позволяет проекту видеть ссылку в приложении Google Workspace, пока пользователь взаимодействует с ним. Подробнее см. в разделе Предварительный просмотр ссылок с помощью смарт-чипов .

Создание сторонних ресурсов https://www.googleapis.com/auth/workspace.linkcreate

Требуется, если дополнение создаёт ресурсы в сторонней службе. Позволяет проекту считывать информацию, отправляемую пользователями в форму создания ресурса, и вставлять ссылку на ресурс в приложение Google Workspace. Подробнее см. в разделе Создание сторонних ресурсов из меню @ .