Создавайте надстройки Google Workspace в Cloud Functions, используя среду выполнения Node.js, которая работает в Gmail, Google Drive, Google Calendar, Google Docs, Google Sheets и Google Slides.
Цели
- Настройте свою среду.
- Создайте и разверните облачную функцию.
- Создайте и разверните дополнение.
- Установите дополнение.
Предпосылки
Убедитесь, что вы включили выставление счетов для своего облачного проекта. Узнайте, как проверить статус выставления счетов для ваших проектов .
Cloud SDK настраивается с помощью проекта Cloud.
Настройте свою среду
Откройте свой облачный проект в консоли Google Cloud.
- В консоли Google Cloud перейдите на страницу выбора проекта .
- Выберите нужный проект Google Cloud. Или нажмите «Создать проект» и следуйте инструкциям на экране. При создании проекта Google Cloud может потребоваться включить для него оплату .
Настройте экран согласия OAuth
Для дополнений Google Workspace требуется настройка экрана согласия. Настройка экрана согласия OAuth для вашего дополнения определяет, что Google будет показывать пользователям.
- В консоли Google Cloud перейдите в >Google Auth platform > Брендинг .
- Если вы уже настроили Google Auth platform, вы можете настроить следующие параметры экрана согласия OAuth в разделах «Брендинг» , «Аудитория» и «Доступ к данным» . Если вы видите сообщение: Google Auth platform пока не настроено , нажмите «Начать» :
- В разделе «Информация о приложении» в поле «Имя приложения » введите имя приложения.
- В поле Адрес электронной почты службы поддержки пользователей выберите адрес электронной почты службы поддержки, по которому пользователи смогут связаться с вами, если у них возникнут вопросы относительно их согласия.
- Нажмите «Далее» .
- В разделе Аудитория выберите Внутренняя .
- Нажмите «Далее» .
- В разделе «Контактная информация» введите адрес электронной почты , на который вы можете получать уведомления о любых изменениях в вашем проекте.
- Нажмите «Далее» .
- В разделе Готово ознакомьтесь с Политикой обработки данных пользователей API служб Google и, если вы согласны, выберите Я согласен с Политикой обработки данных пользователей API служб Google .
- Нажмите «Продолжить» .
- Нажмите «Создать» .
- На данный момент вы можете пропустить добавление областей действия. В будущем при создании приложения для использования за пределами вашей организации Google Workspace необходимо изменить тип пользователя на «Внешний» . Затем добавьте области действия авторизации, необходимые вашему приложению. Подробнее см. в полном руководстве по настройке согласия OAuth .
Создание и развертывание облачной функции
В консоли Google Cloud нажмите «Активировать Cloud Shell» .
.
Терминал Cloud Shell открывается и запускает сеанс в нижней панели консоли Google Cloud.
Нажмите «Авторизовать» , чтобы подготовить ресурсы и подключиться к Cloud Shell.
В терминале Cloud Shell включите API Cloud Functions, API Cloud Build, API дополнений Google Workspace и API Compute Engine:
gcloud services enable cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ gsuiteaddons.googleapis.com \ compute.googleapis.com
Запустите редактор Cloud Shell, нажав
Откройте редактор на панели инструментов окна Cloud Shell.
Этот встроенный редактор кода обеспечивает удобство просмотра и редактирования файлов в той же среде, где создаются и развертываются проекты.
В пустом каталоге создайте файл
function.js
со следующим примером кода:/** * Cloud Function that loads the homepage for a * Google Workspace add-on. * * @param {Object} req Request sent from Google * @param {Object} res Response to send back */ exports.loadHomePage = function addonsHomePage (req, res) { res.send(createAction()); }; /** Creates a card with two widgets. */ function createAction() { return { "action": { "navigations": [ { "pushCard": { "header": { "title": "Cats!" }, "sections": [ { "widgets": [ { "textParagraph": { "text": "Your random cat:" } }, { "image": { "imageUrl": "https://cataas.com/cat" } } ] } ] } } ] } }; }
В том же каталоге создайте файл
package.json
со следующим примером кода:{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
Вернитесь в терминал Cloud Shell, нажав
Откройте Терминал .
Добавьте роль
Cloud Build Service Account
(roles/cloudbuild.builds.builder
) к учетной записи службы Compute Engine по умолчанию.Сначала настройте разрешение учетной записи службы:
export PROJECT_ID=$(gcloud config get project) export SERVICE_ACCOUNT_NAME=$(gcloud compute project-info describe \ --format="value(defaultServiceAccount)")
Затем предоставьте отсутствующей учетной записи службы разрешение:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \ --role="roles/cloudbuild.builds.builder"
Для развертывания функции выполните следующую команду:
gcloud functions deploy loadHomePage --runtime nodejs22 --trigger-http
При появлении запроса укажите, что вы не разрешаете неавторизованные вызовы функции. Развёртывание функции может занять несколько минут.
Создайте развертывание надстройки
Найдите адрес электронной почты учетной записи службы для надстройки:
gcloud workspace-add-ons get-authorization
Назначьте сервисной учётной записи роль
cloudfunctions.invoker
. Замените SERVICE_ACCOUNT_EMAIL полемserviceAccountEmail
из предыдущего шага.gcloud functions add-iam-policy-binding loadHomePage \ --role roles/cloudfunctions.invoker \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL
Получите URL-адрес развёрнутой функции. Чтобы получить URL-адрес, выполните следующую команду и найдите поле
url
в разделеhttpsTrigger
:gcloud functions describe loadHomePage
Вернитесь в редактор Cloud Shell, нажав
Откройте редактор .
В том же каталоге, где находится
package.json
, создайте файлdeployment.json
со следующим примером кода. Замените URL наurl
развёрнутой функции из предыдущего шага.{ "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"], "addOns": { "common": { "name": "My HTTP Add-on", "logoUrl": "https://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png", "homepageTrigger": { "runFunction": "URL" } }, "gmail": {}, "drive": {}, "calendar": {}, "docs": {}, "sheets": {}, "slides": {}, "httpOptions": { "granularOauthPermissionSupport": "OPT_IN" } } }
Вернитесь в Cloud Shell Terminal, чтобы создать развертывание:
gcloud workspace-add-ons deployments create quickstart \ --deployment-file=deployment.json
Установить дополнение
Установите развертывание в режиме разработки:
gcloud workspace-add-ons deployments install quickstart
Откройте или перезагрузите Gmail, чтобы увидеть дополнение. На панели инструментов справа найдите значок стакана.
Нажмите на значок, чтобы открыть дополнение. При необходимости авторизуйте дополнение.
Необязательно: Очистка
Чтобы избежать списания средств с вашего счета, удалите созданные вами ресурсы:
Удалите дополнение из своего аккаунта Google:
gcloud workspace-add-ons deployments uninstall quickstart
Чтобы избежать расходов на ресурсы, используемые в этом кратком руководстве, удалите проект Cloud:
gcloud projects delete PROJECT_ID
Замените PROJECT_ID на идентификатор облачного проекта, который вы использовали для быстрого старта. Идентификатор облачного проекта можно найти в консоли Google Cloud на странице «Панель управления» .
Похожие темы
Чтобы добавить дополнительные функции в надстройку Google Workspace, ознакомьтесь со следующими материалами:
- Создайте дополнение Google Workspace с использованием конечных точек HTTP
- Codelab: Создание надстройки Google Workspace с помощью Node.js и Cloud Run
- Предварительный просмотр ссылок с умными чипами