Пользователи должны авторизовать надстройки и другие приложения, которые получают доступ к их данным или действуют от их имени. Когда пользователь запускает надстройку в первый раз, пользовательский интерфейс надстройки отображает запрос на авторизацию для запуска потока авторизации.
В ходе этого потока запрос сообщает пользователю, на какие действия приложение хочет получить разрешение. Например, надстройка может захотеть получить разрешение на чтение сообщения электронной почты пользователя или создание событий в его календаре. Проект скрипта надстройки определяет эти индивидуальные разрешения как области OAuth .
Вы объявляете области действия в своем манифесте с помощью строк URL. Во время потока авторизации Apps Script представляет пользователю понятное человеку описание области действия. Например, ваше дополнение Google Workspace может использовать область действия «Читать текущее сообщение», которая записана в вашем манифесте как https://www.googleapis.com/auth/gmail.addons.current.message.readonly
. Во время потока авторизации дополнение с этой областью действия запрашивает у пользователя разрешение на: Просмотр сообщений электронной почты во время работы дополнения .
Просмотр областей
Вы можете увидеть области, которые в настоящее время требуются вашему проекту сценария, выполнив следующие действия:
- Откройте проект скрипта.
- Слева нажмите Обзор .
- Просмотрите области действия в разделе «Области действия OAuth проекта».
Вы также можете просмотреть текущие области действия проекта скрипта в манифесте проекта в поле oauthScopes
, но только если вы явно задали эти области действия.
Установка явных областей действия
Apps Script автоматически определяет, какие области нужны скрипту, сканируя его код на предмет вызовов функций, которым они требуются. Для большинства скриптов этого достаточно и экономит ваше время, но для опубликованных дополнений вам следует осуществлять более прямой контроль областей.
Например, Apps Script может предоставить проекту скрипта дополнения весьма разрешительную область https://mail.google.com
по умолчанию. Когда пользователь авторизует проект скрипта с этой областью, проекту предоставляется полный доступ к учетной записи Gmail пользователя. Для опубликованных дополнений необходимо заменить эту область на более ограниченный набор, который охватывает потребности дополнений и не более того.
Вы можете явно задать области действия, используемые вашим проектом скрипта, отредактировав его файл манифеста . Поле манифеста oauthScopes
представляет собой массив всех областей действия, используемых дополнением. Чтобы задать области действия вашего проекта, выполните следующие действия:
- Просмотрите области действия, которые в настоящее время использует ваше дополнение . Определите, какие изменения необходимо внести, например, использовать более узкую область действия.
- Откройте файл манифеста вашего дополнения .
- Найдите поле верхнего уровня с надписью
oauthScopes
. Если его нет, вы можете его добавить. Поле
oauthScopes
определяет массив строк. Чтобы задать области действия, которые использует ваш проект, замените содержимое этого массива на области действия, которые вы хотите использовать. Например, для надстройки Google Workspace, которая расширяет Gmail, у вас может быть следующее:{ ... "oauthScopes": [ "https://www.googleapis.com/auth/gmail.addons.current.message.metadata", "https://www.googleapis.com/auth/userinfo.email" ], ... }
Сохраните изменения в файле манифеста.
Проверка OAuth
Использование определенных чувствительных областей OAuth может потребовать, чтобы ваше дополнение прошло проверку клиента OAuth, прежде чем вы сможете его опубликовать. Для получения дополнительной информации см. следующие руководства:
- Проверка клиента OAuth для Apps Script
- Непроверенные приложения
- Часто задаваемые вопросы по проверке OAuth
- Служба API Google: Политика в отношении пользовательских данных
Ограниченные области применения
Некоторые области ограничены и подчиняются дополнительным правилам, которые помогают защитить данные пользователя. Если вы собираетесь опубликовать дополнение Gmail или Editor, которое использует одну или несколько ограниченных областей, дополнение должно соответствовать всем указанным ограничениям, прежде чем его можно будет опубликовать.
Ознакомьтесь с полным списком ограниченных областей действия перед попыткой публикации. Если ваш аддон использует любую из них, вы должны соблюдать Дополнительные требования для определенных областей действия API перед публикацией.
Выберите области действия для дополнений Google Workspace
В следующих разделах представлены области, которые обычно используются для надстроек Google Workspace.
Редактор областей
Ниже приведены часто используемые области действия дополнений Google Workspace, расширяющих возможности Документов, Таблиц и Презентаций.
Объем | |
---|---|
Доступ к файлам текущих документов | 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 Требуется для надстройки, чтобы использовать |
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 Предоставляет временный доступ к метаданным открытого сообщения (таким как тема или получатели). Не позволяет читать содержимое сообщения и требует токен доступа. Требуется, если надстройка использует метаданные в триггерах действий компоновки. Для действий компоновки эта область действия требуется, если триггеру компоновки требуется доступ к метаданным. На практике эта область действия позволяет триггеру компоновки получать доступ к спискам получателей (to:, cc: и bcc:) черновика ответного письма. |
Прочитать открытое содержание сообщения | 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 Требуется, если надстройке необходимо считывать данные событий, сгенерированные пользователем. Позволяет надстройке получать доступ к данным событий, сгенерированным пользователем. Эти данные доступны только в том случае, если поле манифеста |
Запись данных о событиях, созданных пользователем | https://www.googleapis.com/auth/calendar.addons.current.event.write Требуется, если надстройке необходимо записывать данные событий, сгенерированные пользователем. Позволяет надстройке редактировать данные событий, сгенерированные пользователем. Эти данные доступны только в том случае, если поле манифеста |
Области действия Google Chat
Для вызова API чата необходимо пройти аутентификацию как пользователь Google Chat или как приложение Chat . Каждый тип аутентификации требует различных областей, и не все методы API чата поддерживают аутентификацию приложения.
Чтобы узнать больше о областях действия чата и типах аутентификации, см. Обзор аутентификации и авторизации API чата.
В следующей таблице показаны часто используемые методы и области действия API чата на основе поддерживаемых типов аутентификации:
Метод | Поддерживается аутентификация пользователя | Поддерживается аутентификация приложения | Поддерживаемые области авторизации | |
---|---|---|---|---|
Отправить сообщение | С аутентификацией пользователя :
| |||
Создать пространство | С аутентификацией пользователя :
| |||
Создание и добавление участников в пространство | — | С аутентификацией пользователя :
| ||
Добавить пользователя в пространство | С аутентификацией пользователя :
| |||
Перечислите действия или события из чат-пространства | — | При аутентификации пользователя необходимо использовать область действия для каждого типа событий, включенного в запрос:
|
Области действия Google Диска
Ниже приведены часто используемые области действия дополнений Google Workspace, расширяющих возможности Google Диска.
Объем | |
---|---|
Прочитать метаданные выбранного элемента | https://www.googleapis.com/auth/drive.addons.metadata.readonly Требуется, если надстройка реализует контекстный интерфейс, срабатывающий при выборе пользователем элементов на Диске. Позволяет надстройке считывать ограниченные метаданные об элементах, выбранных пользователем на Google Диске. Метаданные ограничиваются идентификатором элемента, заголовком, типом MIME, URL-адресом значка и тем, имеет ли надстройка разрешение на доступ к элементу. |
Доступ к каждому файлу | https://www.googleapis.com/auth/drive.file Рекомендуется, если надстройке требуется доступ к отдельным файлам Drive. Предоставляет пофайловый доступ к файлам, созданным или открытым приложением, с помощью 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 Позволяет проекту делать запросы |
Чтение локали и часового пояса пользователя | 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. Чтобы узнать больше, см. Создание сторонних ресурсов из меню @ . |