Guía de inicio rápido: Crea un complemento en cualquier lenguaje de programación

Crea un complemento de Google Workspace en Cloud Functions sin usar Apps Script.

Objetivos

  • Crear una Cloud Function
  • Llama a Google para invocar el complemento.
  • Crea una implementación de complemento.
  • Instala el complemento.

Requisitos previos

Crear una Cloud Function

  1. En una terminal local, activa Cloud Functions, Cloud Build y la API de complementos:

    gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
    
  2. En un directorio vacío, crea el archivo functions.js con el siguiente código de muestra:

    /**
     * Google 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. Para implementar la función, ejecuta este comando:

    gcloud functions deploy loadHomePage --runtime nodejs10 --trigger-http
    
  4. Verifica que la función esté implementada:

    gcloud functions call loadHomePage
    

Llamar a Google para invocar el complemento

  1. Busque el correo electrónico de la cuenta de servicio del complemento:

    gcloud workspace-add-ons get-authorization
    
  2. Otorga a la cuenta de servicio la función cloudfunctions.invoker:

    gcloud functions add-iam-policy-binding loadHomePage \
        --role roles/cloudfunctions.invoker \
        --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    

Crea un complemento de implementación

  1. Obtén la URL de la función implementada:

    gcloud functions describe loadHomePage
    
  2. Crea el archivo deployment.json con el siguiente código de muestra. Reemplaza URL por la URL de la función implementada del paso anterior.

    {
      "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"],
      "addOns": {
        "common": {
          "name": "My HTTP Add-on",
          "logoUrl": "https://github.com/webdog/octicons-png/raw/master/black/beaker.png",
          "homepageTrigger": {
            "runFunction": "URL"
          }
        },
        "gmail": {},
        "drive": {},
        "calendar": {},
        "docs": {},
        "sheets": {},
        "slides": {}
      }
    }
    
  3. Crea la implementación:

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

Instalar el complemento

  1. Instala la implementación en modo de desarrollo:

    gcloud workspace-add-ons deployments install quickstart
    
  2. Abra o vuelva a cargar Gmail para ver el complemento. En la barra de herramientas de la derecha, busca el ícono de un vaso.

  3. Haga clic en el ícono para abrir el complemento.

Realiza una limpieza

  1. Desinstala el complemento de tu cuenta de Google:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. Para evitar que se generen cargos por los recursos que usaste en esta guía de inicio rápido, borra el proyecto:

    gcloud projects delete PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto que usaste para la guía de inicio rápido. Puedes encontrar el ID del proyecto en Cloud Console en la página Panel.