Creare un componente aggiuntivo di Google Workspace con Node.js

Crea componenti aggiuntivi di Google Workspace in Cloud Functions utilizzando il runtime Node.js.

Obiettivi

  • Configurare l'ambiente.
  • Creare ed eseguire il deployment di una funzione Cloud Functions.
  • Crea ed esegui il deployment del componente aggiuntivo.
  • Installa il componente aggiuntivo.

Prerequisiti

Configura l'ambiente

Apri il progetto Cloud nella console Google Cloud.

  1. Nella console Google Cloud, vai alla pagina Seleziona un progetto.

    Seleziona un progetto Cloud

  2. Seleziona il progetto Google Cloud che vuoi utilizzare. In alternativa, fai clic su Crea progetto e segui le istruzioni sullo schermo. Se crei un progetto Google Cloud, potresti dover attivare la fatturazione per il progetto.

Configura la schermata per il consenso OAuth

I componenti aggiuntivi di Google Workspace richiedono una configurazione della schermata di consenso. La configurazione della schermata per il consenso OAuth del componente aggiuntivo definisce cosa mostra Google agli utenti.

  1. Nella console Google Cloud, vai a Menu > Google Auth platform > Branding.

    Vai a Branding

  2. Se hai già configurato Google Auth platform, puoi configurare le seguenti impostazioni della schermata per il consenso OAuth in Branding, Pubblico e Accesso ai dati. Se viene visualizzato il messaggio Google Auth platform non ancora configurata, fai clic su Inizia:
    1. In Informazioni sull'app, nel campo Nome app, inserisci un nome per l'app.
    2. In Email dell'assistenza utente, scegli un indirizzo email dell'assistenza a cui gli utenti possono contattarti in caso di domande sul loro consenso.
    3. Fai clic su Avanti.
    4. Nella sezione Pubblico, seleziona Interno.
    5. Fai clic su Avanti.
    6. In Informazioni di contatto, inserisci un indirizzo email a cui ricevere notifiche in caso di modifiche al tuo progetto.
    7. Fai clic su Avanti.
    8. In Fine, esamina le Norme relative ai dati utente dei servizi API di Google e, se le accetti, seleziona Accetto le Norme relative ai dati utente dei servizi API di Google.
    9. Fai clic su Continua.
    10. Fai clic su Crea.
  3. Per ora puoi saltare l'aggiunta degli ambiti. In futuro, quando crei un'app da utilizzare al di fuori della tua organizzazione Google Workspace, devi modificare il Tipo di utente in Esterno. Poi aggiungi gli ambiti di autorizzazione richiesti dalla tua app. Per saperne di più, consulta la guida completa Configurare il consenso OAuth.

Crea ed esegui il deployment di una funzione Cloud

  1. Nella console Google Cloud, fai clic su Attiva Cloud Shell Pulsante Attiva Cloud
Shell.

    Attiva Cloud Shell

    Si apre il terminale Cloud Shell e viene avviata una sessione nel riquadro inferiore della console Google Cloud.

  2. Fai clic su Autorizza per eseguire il provisioning e connetterti a Cloud Shell.

  3. Nel terminale Cloud Shell, attiva l'API Cloud Functions, l'API Cloud Build, l'API Google Workspace Add-ons e l'API Compute Engine:

    gcloud services enable cloudfunctions.googleapis.com  \
                        cloudbuild.googleapis.com  \
                        gsuiteaddons.googleapis.com  \
                        compute.googleapis.com
    
  4. Avvia l'editor di Cloud Shell facendo clic su Pulsante Editor di codice Apri editor nella barra degli strumenti della finestra di Cloud Shell.

    Questo editor di codice integrato offre la comodità di visualizzare e modificare i file nello stesso ambiente in cui vengono creati e implementati i progetti.

  5. Nella directory vuota, crea il file function.js con il seguente codice di esempio:

    /**
     * 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"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  6. Nella stessa directory, crea il file package.json con il seguente codice di esempio:

    {
      "dependencies": {
        "@google-cloud/functions-framework": "^3.0.0"
      }
    }
    
  7. Torna al terminale Cloud Shell facendo clic su Pulsante Attiva Cloud Shell Apri terminale.

  8. Aggiungi il ruolo Cloud Build Service Account (roles/cloudbuild.builds.builder) all'account di servizio predefinito di Compute Engine.

    Innanzitutto, configura l'autorizzazione per il service account:

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

    Successivamente, concedi l'autorizzazione mancante del service account:

    gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
      --role="roles/cloudbuild.builds.builder"
    
  9. Esegui questo comando per eseguire il deployment della funzione:

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

    Se richiesto, specifica che non consenti le chiamate non autenticate della funzione. Il deployment della funzione potrebbe richiedere alcuni minuti.

Crea un deployment del componente aggiuntivo

  1. Trova l'email del service account per il componente aggiuntivo:

    gcloud workspace-add-ons get-authorization
    
  2. Concedi al service account il ruolo cloudfunctions.invoker. Sostituisci SERVICE_ACCOUNT_EMAIL con il campo serviceAccountEmail del passaggio precedente.

    gcloud functions add-iam-policy-binding loadHomePage \
       --role roles/cloudfunctions.invoker \
       --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. Ottieni l'URL della funzione di cui è stato eseguito il deployment. Per ottenere l'URL, esegui questo comando e cerca il campo url nella sezione httpsTrigger:

    gcloud functions describe loadHomePage
    
  4. Torna all'editor di Cloud Shell facendo clic su Pulsante Editor di codice Apri editor.

  5. Nella stessa directory di package.json, crea il file deployment.json con il seguente codice di esempio. Sostituisci URL con url della funzione di cui è stato eseguito il deployment nel passaggio precedente.

    {
      "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. Torna al terminale Cloud Shell per creare il deployment:

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

Installazione del componente aggiuntivo

  1. Installa l'implementazione in modalità di sviluppo:

    gcloud workspace-add-ons deployments install quickstart
    
  2. Apri o ricarica Gmail per visualizzare il componente aggiuntivo. Nella barra degli strumenti a destra, cerca un'icona a forma di becher.

  3. Fai clic sull'icona per aprire il componente aggiuntivo. Se richiesto, autorizza il componente aggiuntivo.

(Facoltativo) Esegui la pulizia

Per evitare che al tuo account vengano addebitati costi, elimina le risorse che hai creato:

  1. Disinstalla il componente aggiuntivo dal tuo Account Google:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. Per evitare che ti vengano addebitati costi per le risorse utilizzate in questa guida rapida, elimina il progetto Cloud:

    gcloud projects delete PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del progetto Cloud che hai utilizzato per la guida rapida. Puoi trovare l'ID progetto Cloud nella console Google Cloud nella pagina Dashboard.

Per aggiungere altre funzionalità al tuo componente aggiuntivo di Google Workspace, consulta quanto segue: