Crea una guía de inicio rápido para el complemento de Google Workspace

Crear complementos de Google Workspace en Cloud Functions con el entorno de ejecución de Node.js

Objetivos

  • Configurar el entorno
  • Crear e implementar una Cloud Function
  • Crea e implementa el complemento.
  • Instala el complemento.

Requisitos previos

Configura tu entorno

Abre tu proyecto de Cloud en la consola de Google Cloud.

  1. En la consola de Google Cloud, ve a la página Seleccionar un proyecto.

    Selecciona un proyecto de Cloud

  2. Selecciona el proyecto de Google Cloud que deseas usar. O bien, haz clic en Crear proyecto y sigue las instrucciones en pantalla. Si creas un proyecto de Google Cloud, es posible que debas activar la facturación para el proyecto.

Cómo configurar la pantalla de consentimiento de OAuth

Los complementos de Google Workspace requieren una configuración de la pantalla de consentimiento. Cuando configuras la pantalla de consentimiento de OAuth del complemento, se define lo que Google muestra a los usuarios.

  1. En la consola de Google Cloud, ve a Menú > APIs y servicios > Pantalla de consentimiento de OAuth.

    Ir a la pantalla de consentimiento de OAuth

  2. En Tipo de usuario, selecciona Interno y, luego, haz clic en Crear.
  3. Completa el formulario de registro de la app y, luego, haz clic en Save and Continue.
  4. Por ahora, puedes omitir la adición de permisos y hacer clic en Guardar y continuar. En el futuro, cuando crees una app para usarla fuera de tu organización de Google Workspace, deberás cambiar el Tipo de usuario a Externo y, luego, agregar los permisos de autorización que requiera tu app.

  5. Revisa el resumen del registro de tu app. Para realizar cambios, haz clic en Editar. Si el registro de la app es correcto, haz clic en Volver al panel.

Crea e implementa una Cloud Function

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

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

    /**
     * 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 nodejs12 --trigger-http
    

    Si se te solicita, especifica que no permites invocaciones no autenticadas de la función. Es posible que la función tarde algunos minutos en implementarse.

Crea una implementación de complemento

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

    gcloud workspace-add-ons get-authorization
    
  2. Otorga a la cuenta de servicio el rol cloudfunctions.invoker:

    gcloud functions add-iam-policy-binding loadHomePage \
        --role roles/cloudfunctions.invoker \
        --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. Obtén la URL de la función implementada. Para obtener la URL, ejecuta el siguiente comando y busca el campo url en la sección httpsTrigger:

    gcloud functions describe loadHomePage
    
  4. 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://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png",
          "homepageTrigger": {
            "runFunction": "URL"
          }
        },
        "gmail": {},
        "drive": {},
        "calendar": {},
        "docs": {},
        "sheets": {},
        "slides": {}
      }
    }
    
  5. Crea la implementación:

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

Instala el complemento

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

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

  3. Haz clic en el ícono para abrir el complemento. Si se te solicita, autoriza el complemento.

Opcional: Limpieza

Para evitar que se apliquen cargos a tu cuenta, borra los recursos que creaste:

  1. Para desinstalar el complemento de tu Cuenta de Google, sigue estos pasos:

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

    gcloud projects delete PROJECT_ID
    

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

Próximos pasos

Para agregar más funciones a tu complemento de Google Workspace, consulta las siguientes guías: