Con los complementos de Google Workspace, puedes proporcionar interfaces personalizadas en los editores, incluidos Documentos, Hojas de cálculo y Presentaciones de Google. Esto te permite proporcionarle al usuario información relevante, automatizar tareas y conectar sistemas de terceros a los editores.
Cómo acceder a la IU del complemento
Puedes abrir un complemento de Google Workspace en los editores si su ícono aparece en el panel lateral de acceso rápido de Google Workspace, a la derecha de las interfaces de usuario de Documentos, Hojas de cálculo y Presentaciones.
Un complemento de Google Workspace puede presentar las siguientes interfaces:
Interfaz de la página principal: Si el manifiesto del complemento incluye el activador
EDITOR_NAME.homepageTrigger
para el editor en el que el usuario abre el complemento, este se compila y muestra una tarjeta de la página principal específicamente para ese editor. Si el manifiesto del complemento no incluye elEDITOR_NAME.homepageTrigger
para el editor en el que el usuario lo abre, se mostrará una tarjeta de página principal genérica.Interfaces de la API de REST: Si el complemento usa APIs de REST, puedes incluir activadores que soliciten acceso por archivo a un documento con el permiso
drive.file
. Una vez otorgado, se ejecuta otro activador llamadoEDITOR_NAME.onFileScopeGrantedTrigger
y se muestra una interfaz específica del archivo.Interfaz de vista previa de vínculos: Si tu complemento se integra con un servicio de terceros, puedes crear tarjetas que muestren una vista previa del contenido de las URLs de tu servicio.
Cómo compilar interfaces para complementos de Editor
Sigue estos pasos para compilar interfaces de complementos de editores para los editores:
- Agrega los campos
addOns.common
,addOns.docs
,addOns.sheets
yaddOns.slides
apropiados al manifiesto del proyecto de secuencia de comandos del complemento. - Agrega los alcances del editor necesarios al manifiesto de tu proyecto de secuencia de comandos.
- Si proporcionas una página principal específica para el editor, implementa la función
EDITOR_NAME.homepageTrigger
para compilar la interfaz. De lo contrario, usa la interfazcommon.homepageTrigger
para crear una página principal común para tus apps de host. - Si usas APIs de REST, implementa el flujo de autorización de alcance
drive.file
y la función de activaciónEDITOR_NAME.onFileScopeGrantedTrigger
para mostrar una interfaz específica del archivo abierto. Para obtener más información, consulta Interfaces de la API de REST. - Si configuras vistas previas de vínculos desde un servicio de terceros, implementa el flujo de autorización de alcance
https://www.googleapis.com/auth/workspace.linkpreview
y la funciónlinkPreviewTriggers
. Para obtener más información, consulta Interfaces de vista previa de vínculos. - Implementa las funciones de devolución de llamada asociadas necesarias para responder a las interacciones del usuario con la IU, como los clics en los botones.
Páginas principales del editor
Debes proporcionar una función de activación de la página principal en el proyecto de secuencia de comandos del complemento que compile y muestre un solo Card
o un array de objetos Card
que conforman la página principal del complemento.
A la función del activador de la página principal se le pasa un objeto de evento como un parámetro que contiene información como la plataforma del cliente. Puedes usar los datos del objeto de evento para adaptar la construcción de la página principal.
Puedes presentar una página principal común o una específica del editor en el que el usuario abre el complemento.
Cómo mostrar la página principal común
Para mostrar la página principal común de tu complemento en los editores, incluye los campos de editor adecuados, como addOns.docs
, addOns.sheets
o addOns.slides
, en el manifiesto del complemento.
En el siguiente ejemplo, se muestra la parte addons
de un manifiesto de complemento de Google Workspace. El complemento extiende Documentos, Hojas de cálculo y Presentaciones, y muestra la página principal común en cada app de host.
"addOns": { "common": { "name": "Translate", "logoUrl": "https://www.gstatic.com/images/branding/product/1x/translate_24dp.png", "layoutProperties": { "primaryColor": "#2772ed" }, "homepageTrigger": { "runFunction": "onHomepage" } }, "docs": {}, "sheets": {}, "slides": {} } }
Cómo mostrar una página principal específica del editor
Para presentar una página principal específica para un editor, agrega EDITOR_NAME.homepageTrigger
al manifiesto del complemento.
En el siguiente ejemplo, se muestra la parte addons
de un manifiesto de complemento de Google Workspace.
El complemento está habilitado para Documentos, Hojas de cálculo y Presentaciones. Muestra la página principal común en Documentos y Presentaciones, y una página principal única en Hojas de cálculo. La función de devolución de llamada onSheetsHomepage
compila la tarjeta de la página principal específica de Hojas de cálculo.
"addOns": { "common": { "name": "Translate", "logoUrl": "https://www.gstatic.com/images/branding/product/1x/translate_24dp.png", "layoutProperties": { "primaryColor": "#2772ed" }, "homepageTrigger": { "runFunction": "onHomepage" } }, "docs": {}, "slides": {}, "sheets": { "homepageTrigger": { "runFunction": "onSheetsHomepage" }, } }
Interfaces de la API de REST
Si tu complemento usa APIs de REST, como la API de Hojas de cálculo de Google,
puedes usar la función onFileScopeGrantedTrigger
para mostrar una nueva interfaz
específica del archivo que está abierto en la app de host de Editor.
Debes incluir el flujo de autorización de alcance drive.file
para usar la función onFileScopeGrantedTrigger
. Para obtener información sobre cómo solicitar el permiso drive.file
, consulta Cómo solicitar acceso a archivos para el documento actual.
Cuando un usuario otorga el permiso drive.file
, se activa EDITOR_NAME.onFileScopeGrantedTrigger.runFunction
. Cuando se activa el activador, ejecuta la función de activador contextual que especifica el campo EDITOR_NAME.onFileScopeGrantedTrigger.runFunction
en el manifiesto del complemento.
Para crear una interfaz de API de REST para uno de los editores, sigue los pasos que se indican a continuación.
Reemplaza EDITOR_NAME
por la app de host de Editor que elijas usar, por ejemplo, sheets.onFileScopeGrantedTrigger
.
- Incluye el
EDITOR_NAME.onFileScopeGrantedTrigger
en la sección del editor adecuada de tu manifiesto. Por ejemplo, si quieres crear esta interfaz en Hojas de cálculo de Google, agrega el activador a la sección"sheets"
. - Implementa la función que se nombra en la sección
EDITOR_NAME.onFileScopeGrantedTrigger
. Esta función acepta un objeto de evento como argumento y debe mostrar un solo objetoCard
o un array de objetosCard
. - Al igual que con cualquier tarjeta, debes implementar las funciones de devolución de llamada que se usan para proporcionar interactividad del widget para la interfaz. Por ejemplo, si incluyes un botón en la interfaz, este debe tener una acción adjunta y una función de devolución de llamada implementada que se ejecute cuando se haga clic en el botón.
En el siguiente ejemplo, se muestra la parte addons
de un manifiesto de complemento de Google Workspace.
El complemento usa APIs de REST, por lo que se incluye onFileScopeGrantedTrigger
para Hojas de cálculo de Google. Cuando un usuario otorga el permiso drive.file
, la función de devolución de llamada onFileScopeGrantedSheets
compila una interfaz específica del archivo.
"addOns": { "common": { "name": "Productivity add-on", "logoUrl": "https://www.gstatic.com/images/icons/material/system_gm/1x/work_outline_black_18dp.png", "layoutProperties": { "primaryColor": "#669df6", "secondaryColor": "#ee675c" } }, "sheets": { "homepageTrigger": { "runFunction": "onEditorsHomepage" }, "onFileScopeGrantedTrigger": { "runFunction": "onFileScopeGrantedSheets" } }
Interfaces de vista previa de vínculos para servicios de terceros
Para activar las vistas previas de vínculos de un servicio de terceros, debes configurarlas en el manifiesto de tu complemento y crear una función que devuelva una tarjeta de vista previa. En el caso de los servicios que requieren autorización del usuario, tu función también debe invocar el flujo de autorización.
Si deseas conocer los pasos para activar las vistas previas de vínculos, consulta Obtén una vista previa de los vínculos con chips inteligentes.
Objetos de eventos
Se crea un objeto de evento y se pasa a las funciones de activación, como EDITOR_NAME.homepageTrigger
o EDITOR_NAME.onFileScopeGrantedTrigger
. La función del activador usa la información del
objeto del evento para determinar cómo construir tarjetas de complementos o controlar de otra manera el
comportamiento del complemento.
La estructura completa de los objetos de evento se describe en Objetos de evento.
Cuando un editor es la app host del complemento, los objetos de evento incluyen campos de objetos de eventos de Documentos, Hojas de cálculo o Presentaciones que contienen información del cliente.
Si el complemento no tiene autorización de permiso drive.file
para el usuario o el documento actuales, el objeto del evento solo contiene el campo docs.addonHasFileScopePermission
, sheets.addonHasFileScopePermission
o slides.addonHasFileScopePermission
. Si el complemento tiene
autorización, el objeto del evento contiene todos los campos del objeto del evento de Editor.
En el siguiente ejemplo, se muestra un objeto de evento de Editor que se pasa a una función sheets.onFileScopeGrantedTrigger
. Aquí, el complemento tiene la autorización de permiso drive.file
para el documento actual:
` { "commonEventObject": { ... }, "sheets": { "addonHasFileScopePermission": true, "id":"A_24Q3CDA23112312ED52", "title":"How to get started with Sheets" }, ... }