Создайте надстройку Google Workspace с помощью Node.js.

Создавайте дополнения Google Workspace в функциях Cloud Run , используя среду выполнения Node.js.

Цели

  • Настройте свою среду.
  • Создайте и разверните функцию Cloud Run.
  • Создайте и разверните дополнение.
  • Установите дополнение.

Предварительные требования

Настройте свою среду

Откройте свой облачный проект в консоли Google Cloud.

  1. В консоли Google Cloud перейдите на страницу «Выберите проект» .

    Выберите облачный проект

  2. Выберите проект Google Cloud, который хотите использовать. Или нажмите «Создать проект» и следуйте инструкциям на экране. Если вы создаете проект Google Cloud, вам может потребоваться включить оплату для этого проекта .

Настройте экран согласия OAuth.

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

  1. В консоли Google Cloud перейдите в >Google Auth platform > Брендинг .

    Перейти к разделу «Брендинг»

  2. Если вы уже настроили Google Auth platformВы можете настроить следующие параметры экрана согласия OAuth в разделах «Брендинг» , «Аудитория» и «Доступ к данным» . Если вы видите сообщение, в котором говорится... Google Auth platform Если конфигурация еще не выполнена , нажмите «Начать» :
    1. В разделе «Информация о приложении» , в поле «Название приложения» , введите название для приложения.
    2. В разделе «Электронная почта службы поддержки пользователей» выберите адрес электронной почты, по которому пользователи смогут связаться с вами, если у них возникнут вопросы относительно их согласия.
    3. Нажмите «Далее» .
    4. В разделе «Аудитория» выберите «Внутренняя» .
    5. Нажмите «Далее» .
    6. В поле «Контактная информация» укажите адрес электронной почты , на который вы сможете получать уведомления об изменениях в вашем проекте.
    7. Нажмите «Далее» .
    8. В разделе «Завершить» ознакомьтесь с Политикой использования пользовательских данных сервисов Google API и, если вы согласны, выберите «Я согласен с Политикой использования пользовательских данных сервисов Google API» .
    9. Нажмите «Продолжить» .
    10. Нажмите «Создать» .
  3. На данный момент добавление областей действия можно пропустить. В будущем, при создании приложения для использования за пределами вашей организации Google Workspace, необходимо изменить тип пользователя на «Внешний» . Затем добавьте необходимые для вашего приложения области авторизации. Для получения дополнительной информации см. полное руководство по настройке согласия OAuth .

Создайте и разверните функцию Cloud Run.

  1. Нажмите «Авторизовать» , чтобы выполнить инициализацию и подключиться к Cloud Shell.

  2. В терминале Cloud Shell включите API функций Cloud Run, API Cloud Build, API надстроек Google Workspace, API Compute Engine и API Cloud Run:

    gcloud services enable cloudfunctions.googleapis.com  \
                        cloudbuild.googleapis.com  \
                        gsuiteaddons.googleapis.com  \
                        compute.googleapis.com  \
                        run.googleapis.com
    
  3. Запустите редактор Cloud Shell, щелкнув по нему.Редактор кода кнопка Откройте редактор на панели инструментов окна Cloud Shell.

    Этот встроенный редактор кода обеспечивает удобство просмотра и редактирования файлов в той же среде, где создаются и развертываются проекты.

  4. В пустой директории создайте файл function.js со следующим примером кода:

    /**
     * Cloud Run 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"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  5. В той же директории создайте файл package.json со следующим примером кода:

    {
      "dependencies": {
        "@google-cloud/functions-framework": "^3.0.0"
      }
    }
    
  6. Вернуться в терминал Cloud Shell можно, нажав на соответствующую кнопку. Активировать Cloud Shell кнопка Откройте терминал .

  7. Добавьте роль 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"
    
  8. Для развертывания функции выполните следующую команду:

    gcloud run deploy loadHomePage --runtime nodejs22 --trigger-http
    

    Если появится запрос, укажите, что вы не разрешаете несанкционированные вызовы функции. Развертывание функции может занять несколько минут.

Создайте дополнительное развертывание.

  1. Найдите адрес электронной почты сервисного аккаунта для дополнения:

    gcloud workspace-add-ons get-authorization
    
  2. Предоставьте учетной записи службы роль cloudfunctions.invoker . Замените SERVICE_ACCOUNT_EMAIL на поле serviceAccountEmail из предыдущего шага.

    gcloud run services add-iam-policy-binding loadHomePage \
       --role roles/roles/run.invoker \
       --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. Получите URL-адрес развернутой функции. Для этого выполните следующую команду и найдите поле url в разделе httpsTrigger :

    gcloud run services describe loadHomePage
    
  4. Вернуться в редактор Cloud Shell можно, нажав...Редактор кода кнопка Открытый редактор .

  5. В той же директории, где находится файл 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"
        }
      }
    }
    
  6. Вернитесь в терминал Cloud Shell, чтобы создать развертывание:

    gcloud workspace-add-ons deployments create quickstart \
       --deployment-file=deployment.json
    

Установите дополнение.

  1. Установите систему развертывания в режиме разработки:

    gcloud workspace-add-ons deployments install quickstart
    
  2. Чтобы увидеть дополнение, откройте или перезагрузите Gmail. На панели инструментов справа найдите значок в виде колбы.

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

Необязательно: Уборка

Чтобы избежать списания средств с вашего счета, удалите созданные вами ресурсы:

  1. Удалите дополнение из своего аккаунта Google:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. Чтобы избежать расходов на ресурсы, использованные в этом кратком руководстве, удалите проект Cloud:

    gcloud projects delete PROJECT_ID
    

    Замените PROJECT_ID на идентификатор проекта Cloud, который вы использовали для быстрого запуска. Идентификатор проекта Cloud можно найти в консоли Google Cloud на странице «Панель управления» .

Чтобы добавить дополнительные функции в ваше дополнение Google Workspace, обратитесь к следующей информации: