Google Workspace-Add-on mit Node.js erstellen

Google Workspace-Add-ons in Cloud Run-Funktionen mit der Node.js-Laufzeitumgebung erstellen.

Ziele

  • Umgebung einrichten
  • Cloud Run-Funktion erstellen und bereitstellen
  • Add-on erstellen und bereitstellen
  • Add-on installieren

Vorbereitung

  • Ein Google Cloud-Projekt.

  • Abrechnung für Ihr Cloud-Projekt aktivieren. Informationen zum Prüfen des Abrechnungsstatus Ihrer Projekte

  • Das Cloud SDK ist mit dem Cloud-Projekt konfiguriert.

Umgebung einrichten

Cloud-Projekt in der Google Cloud Console öffnen

  1. Rufen Sie in der Google Cloud Console die Seite Projekt auswählen auf.

    Cloud-Projekt auswählen

  2. Wählen Sie das Google Cloud-Projekt aus, das Sie verwenden möchten. Oder klicken Sie auf Projekt erstellen und folgen Sie der Anleitung auf dem Bildschirm. Wenn Sie ein Google Cloud-Projekt erstellen, müssen Sie möglicherweise die Abrechnung für das Projekt aktivieren.

OAuth-Zustimmungsbildschirm konfigurieren

Für Google Workspace-Add-ons ist eine Konfiguration des Zustimmungsbildschirms erforderlich. Wenn Sie den OAuth-Zustimmungsbildschirm Ihres Add-ons konfigurieren, legen Sie fest, was Google den Nutzern anzeigt.

  1. Rufen Sie in der Google API Console das Menü > Google Auth Platform > Branding auf.

    Zum Branding

  2. Wenn Sie die Google Auth Platform bereits konfiguriert haben, können Sie die folgenden Einstellungen für den OAuth-Zustimmungsbildschirm unter Branding, Zielgruppe und Datenzugriff konfigurieren. Wenn die Meldung Google Auth Platform noch nicht konfiguriert angezeigt wird, klicken Sie auf Jetzt starten:
    1. Geben Sie unter Anwendungsinformationen im Feld Anwendungsname einen Namen für die App ein.
    2. Wählen Sie unter E‑Mail-Adresse für Nutzersupport eine E‑Mail-Adresse für den Support aus, über die Nutzer Sie kontaktieren können, wenn sie Fragen zu ihrer Einwilligung haben.
    3. Klicken Sie auf Weiter.
    4. Wählen Sie unter Zielgruppe die Option Intern aus.
    5. Klicken Sie auf Weiter.
    6. Geben Sie unter Kontaktdaten eine E‑Mail-Adresse ein, über die Sie über Änderungen an Ihrem Projekt informiert werden können.
    7. Klicken Sie auf Weiter.
    8. Lesen Sie unter Abschließen die Nutzerdatenrichtlinie für Google API-Dienste. Wenn Sie damit einverstanden sind, wählen Sie Ich akzeptiere die Richtlinie zu Nutzerdaten für Google API-Dienste aus.
    9. Klicken Sie auf Weiter.
    10. Klicken Sie auf Erstellen.
  3. Sie können das Hinzufügen von Bereichen vorerst überspringen. Wenn Sie später eine App für die Verwendung außerhalb Ihrer Google Workspace-Organisation erstellen, müssen Sie den Nutzertyp in Extern ändern. Fügen Sie dann die Autorisierungsbereiche hinzu, die für Ihre App erforderlich sind. Weitere Informationen finden Sie im vollständigen Leitfaden zum Konfigurieren des OAuth-Zustimmungsbildschirms.

Cloud Run-Funktion erstellen und bereitstellen

  1. Klicken Sie auf Autorisieren , um Cloud Shell bereitzustellen und eine Verbindung herzustellen.

  2. Aktivieren Sie im Cloud Shell-Terminal die Cloud Run Functions API, die Cloud Build API, die Google Workspace Add-ons API, die Compute Engine API und die Cloud Run API:

    gcloud services enable cloudfunctions.googleapis.com  \
                        cloudbuild.googleapis.com  \
                        gsuiteaddons.googleapis.com  \
                        compute.googleapis.com  \
                        run.googleapis.com
    
  3. Starten Sie den Cloud Shell-Editor, indem Sie in der Symbolleiste des Cloud Shell-Fensters auf Schaltfläche „Code-Editor“ Editor öffnen klicken.

    Der integrierte Codeeditor ermöglicht das Aufrufen und Bearbeiten von Dateien in der Umgebung, in der Projekte erstellt und bereitgestellt werden.

  4. Erstellen Sie im leeren Verzeichnis die Datei function.js mit dem folgenden Beispielcode:

    /**
     * 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. Erstellen Sie im selben Verzeichnis die Datei package.json mit dem folgenden Beispielcode:

    {
      "dependencies": {
        "@google-cloud/functions-framework": "^3.0.0"
      }
    }
    
  6. Kehren Sie zum Cloud Shell-Terminal zurück und klicken Sie dazu auf Schaltfläche „Cloud Shell aktivieren“ Terminal öffnen.

  7. Fügen Sie dem Compute Engine-Standarddienstkonto die Rolle Cloud Build Service Account (roles/cloudbuild.builds.builder) hinzu.

    Richten Sie zuerst die Dienstkontoberechtigung ein:

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

    Gewähren Sie als Nächstes die fehlende Dienstkontoberechtigung:

    gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
      --role="roles/cloudbuild.builds.builder"
    
  8. Führen Sie den folgenden Befehl aus, um die Funktion bereitzustellen:

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

    Geben Sie bei Aufforderung an, dass Sie keine nicht authentifizierten Aufrufe der Funktion zulassen. Die Bereitstellung der Funktion kann einige Minuten dauern.

Add-on-Bereitstellung erstellen

  1. Suchen Sie die E‑Mail-Adresse des Dienstkontos für das Add-on:

    gcloud workspace-add-ons get-authorization
    
  2. Weisen Sie dem Dienstkonto die cloudfunctions.invoker Rolle zu. Ersetzen Sie SERVICE_ACCOUNT_EMAIL durch das serviceAccountEmail Feld aus dem vorherigen Schritt.

    gcloud run services add-iam-policy-binding loadHomePage \
        --role roles/roles/run.invoker \
        --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. Rufen Sie die URL der bereitgestellten Funktion ab. Führen Sie dazu den folgenden Befehl aus und suchen Sie im Abschnitt httpsTrigger nach dem Feld url:

    gcloud run services describe loadHomePage
    
  4. Kehren Sie zum Cloud Shell-Editor zurück und klicken Sie dazu auf Schaltfläche „Code-Editor“ Editor öffnen.

  5. Erstellen Sie im selben Verzeichnis wie package.json die Datei deployment.json mit dem folgenden Beispielcode. Ersetzen Sie URL durch die url der bereitgestellten Funktion aus dem vorherigen Schritt.

    {
      "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. Kehren Sie zum Cloud Shell-Terminal zurück, um die Bereitstellung zu erstellen:

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

Add-on installieren

  1. Installieren Sie die Bereitstellung im Entwicklungsmodus:

    gcloud workspace-add-ons deployments install quickstart
    
  2. Öffnen oder aktualisieren Sie Gmail, um das Add-on aufzurufen. Suchen Sie in der Symbolleiste rechts nach einem Becher.

  3. Klicken Sie auf das Symbol, um das Add-on zu öffnen. Autorisieren Sie das Add-on, wenn Sie dazu aufgefordert werden.

Optional: Bereinigen

Löschen Sie die erstellten Ressourcen, um Kosten zu vermeiden:

  1. Deinstallieren Sie das Add-on aus Ihrem Google-Konto:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. Löschen Sie das Cloud-Projekt, um Kosten für die in dieser Kurzanleitung verwendeten Ressourcen zu vermeiden:

    gcloud projects delete PROJECT_ID
    

    Ersetzen Sie PROJECT_ID durch die ID des Cloud-Projekts, das Sie für die Kurzanleitung verwendet haben. Sie finden die Cloud-Projekt-ID in der Google API Console auf der Seite „Dashboard“.

Informationen zum Hinzufügen weiterer Funktionen zu Ihrem Google Workspace-Add-on finden Sie hier: