Guida rapida alla creazione di un componente aggiuntivo di Google Workspace

Crea un componente aggiuntivo 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.

Configurare 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 ciò che Google mostra agli utenti.

  1. Nella console Google Cloud, vai a Menu > API e servizi > Schermata consenso OAuth.

    Vai alla schermata per il consenso OAuth

  2. In Tipo di utente, seleziona Interno e poi fai clic su Crea.
  3. Compila il modulo di registrazione dell'app, poi fai clic su Salva e continua.
  4. Per il momento, puoi saltare l'aggiunta di ambiti e fare clic su Salva e continua. In futuro, quando creerai un'app da utilizzare al di fuori della tua organizzazione Google Workspace, dovrai cambiare Tipo di utente in Esterno e poi aggiungere gli ambiti di autorizzazione richiesti dalla tua app.

  5. Rivedi il riepilogo della registrazione dell'app. Per apportare modifiche, fai clic su Modifica. Se la registrazione dell'app è corretta, fai clic su Torna alla dashboard.

Crea ed esegui il deployment di una funzione Cloud

  1. In un terminale locale, attiva Cloud Functions, Cloud Build e l'API Google Workspace Add-ons:

    gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
    
  2. In una 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"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  3. Esegui il deployment della funzione:

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

    Se richiesto, specifica che non consentire chiamate non autenticate della funzione. Il deployment della funzione potrebbe richiedere un paio di minuti.

crea un deployment di componenti aggiuntivi

  1. Trova l'indirizzo email dell'account di servizio per il componente aggiuntivo:

    gcloud workspace-add-ons get-authorization
    
  2. Concedi all'account di servizio il ruolo cloudfunctions.invoker:

    gcloud functions add-iam-policy-binding loadHomePage \
        --role roles/cloudfunctions.invoker \
        --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. Recupera 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. Crea il file deployment.json con il seguente codice campione. Sostituisci URL con l'URL della funzione di cui hai eseguito il deployment del 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": {}
      }
    }
    
  5. Crea il deployment:

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

Installa componente aggiuntivo

  1. Installa il deployment in modalità di sviluppo:

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

  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 utilizzato per la guida rapida. Puoi trovare l'ID progetto Cloud nella console Google Cloud nella pagina della dashboard.

Passaggi successivi

Per aggiungere altre funzionalità al componente aggiuntivo di Google Workspace, consulta le seguenti guide: