Создайте надстройку Google Workspace в Cloud Functions, используя среду выполнения Node.js.
Цели
- Настройте свою среду.
- Создайте и разверните облачную функцию.
- Создайте и разверните надстройку.
- Установите дополнение.
Предварительные условия
Убедитесь, что вы включили оплату для своего облачного проекта. Узнайте, как проверить платежный статус ваших проектов .
Cloud SDK настроен с использованием проекта Cloud.
Настройте свою среду
Откройте свой облачный проект в консоли Google Cloud.
- В консоли Google Cloud перейдите на страницу «Выбор проекта» .
- Выберите проект Google Cloud, который вы хотите использовать. Или нажмите «Создать проект» и следуйте инструкциям на экране. Если вы создаете проект Google Cloud, вам может потребоваться включить для него оплату .
Настройка экрана согласия OAuth
Для надстроек Google Workspace требуется настройка экрана согласия. Настройка экрана согласия OAuth вашего дополнения определяет, что Google отображает пользователям.
- В консоли Google Cloud перейдите в > > Брендинг . Меню
- Если вы уже настроили вы можете настроить следующие параметры экрана согласия OAuth в разделах «Брендинг» , «Аудитория» и «Доступ к данным» . Если вы видите сообщение, в котором говорится еще не настроено , нажмите «Начать» :
- В разделе «Информация о приложении» в поле «Имя приложения » введите имя приложения.
- В разделе «Электронная почта поддержки пользователей» выберите адрес электронной почты службы поддержки, по которому пользователи смогут связаться с вами, если у них возникнут вопросы относительно их согласия.
- Нажмите Далее .
- В разделе «Аудитория» выберите «Внутренняя» .
- Нажмите Далее .
- В разделе «Контактная информация» введите адрес электронной почты , по которому вы сможете получать уведомления о любых изменениях в вашем проекте.
- Нажмите Далее .
- В разделе «Готово » ознакомьтесь с Политикой пользовательских данных служб Google API и, если вы согласны, выберите Я согласен с Политикой пользовательских данных служб Google API: Политика пользовательских данных .
- Нажмите Продолжить .
- Нажмите Создать .
- На данный момент вы можете пропустить добавление областей. В будущем, когда вы создадите приложение для использования за пределами вашей организации Google Workspace, вам необходимо изменить тип пользователя на Внешний . Затем добавьте области авторизации, необходимые вашему приложению. Дополнительные сведения см. в полном руководстве по настройке согласия OAuth .
Создайте и разверните облачную функцию
В консоли Google Cloud нажмите «Активировать Cloud Shell» .
.
Терминал Cloud Shell откроется и запустит сеанс на нижней панели консоли Google Cloud.
Нажмите «Авторизовать» , чтобы подготовить Cloud Shell и подключиться к нему.
В терминале Cloud Shell включите Cloud Functions API, Cloud Build API, 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
со следующим примером кода. Замените URLurl
развернутой функции из предыдущего шага.{ "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": {} } }
Вернитесь в терминал Cloud Shell, чтобы создать развертывание:
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 на идентификатор облачного проекта, который вы использовали для быстрого запуска. Идентификатор проекта Cloud можно найти в консоли Google Cloud на странице Dashboard .
Следующие шаги
Чтобы добавить дополнительные функции в надстройку Google Workspace, см. следующее:
- Создайте надстройку Google Workspace, используя конечные точки HTTP.
- Codelab: создание надстройки Google Workspace с помощью Node.js и Cloud Run
- Предварительный просмотр ссылок со смарт-чипами