Краткое руководство по созданию надстройки Google Workspace

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

Цели

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

Предпосылки

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

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

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

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

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

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

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

  1. В консоли Google Cloud выберите > API и службы > Экран согласия OAuth .

    Перейти к экрану согласия OAuth

  2. Выберите тип пользователя для своего приложения, затем нажмите «Создать» .
  3. Заполните регистрационную форму приложения, затем нажмите «Сохранить и продолжить» .
  4. На данный момент вы можете пропустить добавление областей и нажать «Сохранить и продолжить» . В будущем, когда вы будете создавать приложение для использования за пределами вашей организации Google Workspace, вы должны будете добавить и проверить области авторизации, необходимые вашему приложению.

  5. Если вы выбрали Внешний для типа пользователя, добавьте тестовых пользователей:
    1. В разделе «Проверить пользователей» нажмите «Добавить пользователей» .
    2. Введите свой адрес электронной почты и любых других авторизованных тестовых пользователей, затем нажмите «Сохранить и продолжить» .
  6. Просмотрите сводку регистрации приложения. Чтобы внести изменения, нажмите Изменить . Если с регистрацией приложения все в порядке, нажмите «Вернуться к панели управления» .

Создание и развертывание облачной функции

  1. В локальном терминале включите Cloud Functions, Cloud Build и API надстроек Google Workspace:

    gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
    
  2. В пустом каталоге создайте файл 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"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  3. Разверните функцию:

    gcloud functions deploy loadHomePage --runtime nodejs12 --trigger-http
    

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

Создание развертывания надстройки

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

    gcloud workspace-add-ons get-authorization
    
  2. Назначьте учетной записи службы роль cloudfunctions.invoker :

    gcloud functions add-iam-policy-binding loadHomePage \
        --role roles/cloudfunctions.invoker \
        --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. Получите URL развернутой функции. Чтобы получить URL-адрес, выполните следующую команду и найдите поле url в разделе httpsTrigger :

    gcloud functions describe loadHomePage
    
  4. Создайте файл 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": {}
      }
    }
    
  5. Создайте развертывание:

    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. Чтобы избежать взимания платы за ресурсы, используемые в этом кратком руководстве, удалите облачный проект:

    gcloud projects delete PROJECT_ID
    

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

Следующие шаги

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