Tworzenie dodatku do Google Workspace za pomocą Node.js

Twórz dodatki do Google Workspace w funkcjach Cloud Run przy użyciu środowiska wykonawczego Node.js.

Cele

  • skonfigurować środowisko,
  • Utwórz i wdróż funkcję Cloud Run.
  • Utwórz i wdróż dodatek.
  • Zainstaluj dodatek.

Wymagania wstępne

Konfigurowanie środowiska

Otwórz projekt w Google Cloud Console.

  1. W konsoli Google Cloud otwórz stronę Wybierz projekt.

    Wybierz projekt w chmurze

  2. Wybierz projekt Google Cloud, którego chcesz użyć. Możesz też kliknąć Utwórz projekt i postępować zgodnie z instrukcjami wyświetlanymi na ekranie. Jeśli utworzysz projekt Google Cloud, może być konieczne włączenie płatności za ten projekt.

Konfigurowanie ekranu zgody OAuth

Dodatki do Google Workspace wymagają konfiguracji ekranu zgody. Skonfigurowanie ekranu zgody OAuth dodatku określa, co Google wyświetla użytkownikom.

  1. W konsoli Google Cloud otwórz Menu  > Google Auth platform > Branding.

    Otwórz Branding

  2. Jeśli masz już skonfigurowany Google Auth platform, możesz skonfigurować te ustawienia ekranu zgody OAuth w sekcjach Branding, OdbiorcyDostęp do danych. Jeśli zobaczysz komunikat Google Auth platform Jeszcze nie skonfigurowano, kliknij Rozpocznij:
    1. W sekcji Informacje o aplikacji w polu Nazwa aplikacji wpisz nazwę aplikacji.
    2. W polu Adres e-mail dla użytkowników potrzebujących pomocy wybierz adres e-mail, na który użytkownicy mogą pisać, aby się z Tobą skontaktować w sprawie pytań o ich zgodę.
    3. Kliknij Dalej.
    4. W sekcji Odbiorcy wybierz Wewnętrzny.
    5. Kliknij Dalej.
    6. W sekcji Dane kontaktowe wpisz adres e-mail, na który będziesz otrzymywać powiadomienia o wszelkich zmianach w projekcie.
    7. Kliknij Dalej.
    8. W sekcji Zakończ zapoznaj się z zasadami dotyczącymi danych użytkownika w usługach interfejsu API Google, a jeśli je akceptujesz, kliknij Akceptuję zasady dotyczące danych użytkownika w usługach interfejsu API Google.
    9. Kliknij Dalej.
    10. Kliknij Utwórz.
  3. Na razie możesz pominąć dodawanie zakresów. W przyszłości, gdy będziesz tworzyć aplikację do użytku poza organizacją Google Workspace, musisz zmienić Typ użytkownika na Zewnętrzny. Następnie dodaj zakresy autoryzacji wymagane przez aplikację. Więcej informacji znajdziesz w pełnym przewodniku Konfigurowanie zgody OAuth.

Tworzenie i wdrażanie funkcji Cloud Run

  1. Aby skonfigurować Cloud Shell i połączyć się z nim, kliknij Autoryzuj.

  2. W terminalu Cloud Shell włącz interfejsy Cloud Run functions API, Cloud Build API, Google Workspace Add-ons API, Compute Engine API i Cloud Run API:

    gcloud services enable cloudfunctions.googleapis.com  \
                        cloudbuild.googleapis.com  \
                        gsuiteaddons.googleapis.com  \
                        compute.googleapis.com  \
                        run.googleapis.com
    
  3. Uruchom edytor Cloud Shell, klikając Przycisk Edytor kodu Otwórz edytor na pasku narzędzi w oknie Cloud Shell.

    Ten wbudowany edytor kodu umożliwia wygodne przeglądanie i edytowanie plików w tym samym środowisku, w którym tworzone i wdrażane są projekty.

  4. W pustym katalogu utwórz plik function.js z tym przykładowym kodem:

    /**
     * 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. W tym samym katalogu utwórz plik package.json z tym przykładowym kodem:

    {
      "dependencies": {
        "@google-cloud/functions-framework": "^3.0.0"
      }
    }
    
  6. Aby powrócić do terminala Cloud Shell, kliknij Przycisk Aktywuj Cloud Shell Otwórz terminal.

  7. Dodaj rolę Cloud Build Service Account (roles/cloudbuild.builds.builder) do domyślnego konta usługi Compute Engine.

    Najpierw skonfiguruj uprawnienia konta usługi:

    export PROJECT_ID=$(gcloud config get project)
    export SERVICE_ACCOUNT_NAME=$(gcloud compute project-info describe \
      --format="value(defaultServiceAccount)")
    

    Następnie przyznaj brakujące uprawnienia konta usługi:

    gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
      --role="roles/cloudbuild.builds.builder"
    
  8. Aby wdrożyć funkcję, uruchom to polecenie:

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

    Jeśli pojawi się zapytanie, określ, że nie zezwalasz na nieuwierzytelnione wywołania funkcji. Wdrożenie funkcji może potrwać kilka minut.

Tworzenie wdrożenia dodatku

  1. Znajdź adres e-mail konta usługi dla dodatku:

    gcloud workspace-add-ons get-authorization
    
  2. Przypisz do konta usługi rolę cloudfunctions.invoker. Zastąp SERVICE_ACCOUNT_EMAIL polem serviceAccountEmail z poprzedniego kroku.

    gcloud run services add-iam-policy-binding loadHomePage \
       --role roles/roles/run.invoker \
       --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. Pobierz adres URL wdrożonej funkcji. Aby uzyskać adres URL, uruchom to polecenie i w sekcji httpsTrigger poszukaj pola url:

    gcloud run services describe loadHomePage
    
  4. Aby wrócić do edytora Cloud Shell, kliknij Przycisk Edytor kodu Otwórz edytor.

  5. W tym samym katalogu co plik package.json utwórz plik deployment.json z tym przykładowym kodem. Zastąp URL wartością url wdrożonej funkcji z poprzedniego kroku.

    {
      "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. Aby utworzyć wdrożenie, wróć do terminala Cloud Shell:

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

Jak zainstalować dodatek

  1. Zainstaluj wdrożenie w trybie deweloperskim:

    gcloud workspace-add-ons deployments install quickstart
    
  2. Otwórz lub ponownie załaduj Gmaila, aby wyświetlić dodatek. Na pasku narzędzi po prawej stronie poszukaj ikony z kolbą.

  3. Kliknij ikonę, aby otworzyć dodatek. Jeśli pojawi się prośba o autoryzację, autoryzuj dodatek.

Opcjonalnie: czyszczenie

Aby uniknąć obciążenia konta opłatami, usuń utworzone zasoby:

  1. Odinstaluj dodatek z konta Google:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. Aby uniknąć obciążenia konta opłatami za zasoby użyte w tym krótkim wprowadzeniu, usuń projekt w Cloud:

    gcloud projects delete PROJECT_ID
    

    Zastąp PROJECT_ID identyfikatorem projektu w Google Cloud, którego używasz w tym krótkim wprowadzeniu. Identyfikator projektu w Google Cloud znajdziesz w konsoli Google Cloud na stronie Panel.

Aby dodać więcej funkcji do dodatku Google Workspace, wykonaj te czynności: