Guía de inicio rápido para crear un complemento en cualquier lenguaje de codificación

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

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

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 Google Cloud Console.

Si aún no está abierto, abre el proyecto de Cloud que deseas usar para este ejemplo:

  1. Ve a la consola de Google Cloud.
  2. Junto a Google Cloud, haz clic en la flecha hacia abajo . Aparecerá un diálogo en el que se enumeran los proyectos actuales.
  3. Selecciona tu proyecto y haz clic en Open. La consola abre tu proyecto.

Los complementos de Google Workspace requieren una configuración de pantalla de consentimiento. La configuración de la pantalla de consentimiento de OAuth de tu complemento define lo que Google muestra a los usuarios.

  1. En tu proyecto de Google Cloud, ve a Menú > API y servicios > Pantalla de consentimiento de OAuth.

    Ir a la pantalla de consentimiento de OAuth

  2. Seleccione el tipo de usuario para su aplicación y, luego, haga clic en Crear.
  3. Complete el formulario de registro de la aplicación y, luego, haga clic en Guardar y continuar.
  4. Por ahora, puedes omitir el agregado 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 agregar y verificar los alcances de autorización que requiere tu app.
  5. Si seleccionaste Externo como tipo de usuario, agrega los usuarios de prueba:
    1. En Usuarios de prueba, haga clic en Agregar usuarios.
    2. Ingresa tu dirección de correo electrónico y cualquier otro usuario de prueba autorizado. Luego, haz clic en Guardar y continuar.
  6. Revisa el resumen del registro de tu app. Para realizar cambios, haz clic en Editar. Si el registro de la aplicación es satisfactorio, haga clic en Volver al panel de control.

Crea e implementa 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 function.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 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 unos minutos en implementarse.

Crea una implementación de complementos

  1. Busca el correo electrónico de la cuenta de servicio para el 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
    
  3. Obtén la URL de la función implementada:

    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
    

Cómo 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 un ícono de vaso.

  3. Haga clic en el ícono para abrir el complemento. Si se le solicita, autorice 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 apliquen 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.