Tworzenie dodatku do Google Workspace za pomocą Node.js

Tworzenie dodatków Google Workspace w Cloud Functions przy użyciu środowiska wykonawczego Node.js.

Cele

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

Wymagania wstępne

Konfigurowanie środowiska

Otwieranie projektu Cloud w konsoli Google Cloud

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

    Wybierz projekt Cloud

  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 tworzysz projekt Google Cloud, konieczne może być włączenie płatności.

Konfigurowanie ekranu zgody OAuth

Dodatki Google Workspace wymagają skonfigurowania ekranu z prośbą o zgodę. Konfiguracja ekranu zgody OAuth w Twoim dodatku określa, co Google wyświetla użytkownikom.

  1. W konsoli Google Cloud kliknij Menu  > Interfejsy API i usługi > Ekran zgody OAuth.

    Otwórz ekran zgody OAuth

  2. W polu Typ użytkownika wybierz Wewnętrzny, a następnie kliknij Utwórz.
  3. Wypełnij formularz rejestracji aplikacji, a potem kliknij Zapisz i kontynuuj.
  4. Możesz pominąć dodawanie zakresów i kliknąć Zapisz i kontynuuj. Gdy w przyszłości będziesz tworzyć aplikację do użytku poza organizacją Google Workspace, musisz zmienić Typ użytkownika na Zewnętrzny, a następnie dodać zakresy autoryzacji wymagane przez aplikację.

  5. Sprawdź podsumowanie rejestracji aplikacji. Aby wprowadzić zmiany, kliknij Edytuj. Jeśli rejestracja aplikacji wygląda dobrze, kliknij Powrót do panelu.

Tworzenie i wdrażanie funkcji w Cloud Functions

  1. W terminalu lokalnym włącz interfejsy Cloud Functions, Cloud Build i Google Workspace Add-ons API:

    gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
    
  2. W pustym katalogu utwórz plik function.js z tym przykładowym kodem:

    /**
     * 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. Wdróż funkcję:

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

    Jeśli pojawi się prośba, 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:

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

    gcloud functions describe loadHomePage
    
  4. Utwórz plik deployment.json z poniższym przykładowym kodem. Zastąp URL adresem 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": {}
      }
    }
    
  5. Utwórz wdrożenie:

    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. Aby wyświetlić dodatek, otwórz lub ponownie załaduj Gmaila. Na pasku narzędzi po prawej stronie odszukaj ikonę zlewki.

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

Opcjonalnie: oczyszczenie

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

  1. Odinstaluj dodatek ze swojego konta Google:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. Aby uniknąć obciążenia konta opłatami za zasoby wykorzystane w tym samouczku, usuń projekt Cloud:

    gcloud projects delete PROJECT_ID
    

    Zastąp PROJECT_ID identyfikatorem projektu Cloud użytego w samouczku. Identyfikator projektu Cloud znajdziesz w konsoli Google Cloud na stronie Panel.

Dalsze kroki

Aby dodać więcej funkcji do dodatku Google Workspace, zapoznaj się z tymi przewodnikami: