Prácticas recomendadas

Sigue estas guías de diseño de complementos para mejorar la experiencia general de los usuarios.

Prácticas recomendadas generales

Te recomendamos que sigas las siguientes prácticas recomendadas para todos los complementos que desarrolles.

Determina la propiedad del complemento antes de comenzar

Los complementos se definen mediante proyectos de Apps Script, que deben ser propiedad de una cuenta específica o colocarse en una unidad compartida. Antes de codificar un complemento, determina qué cuenta debe ser propietaria del proyecto y cuál actúa como su publicador. También determina qué cuentas actuarán como colaboradores y asegúrate de que esas cuentas tengan acceso al proyecto de secuencia de comandos y al proyecto de plataforma de Cloud asociado.

Extiende Google Workspace, no lo repliques

Los complementos están diseñados para proporcionar nuevas funciones a las aplicaciones de Google Workspace que extienden o, de lo contrario, automatizar tareas complejas. Es probable que los complementos que solo replican la funcionalidad que ya está dentro de la aplicación o que no realizan mejoras significativas en un flujo de trabajo no aprueben la revisión de complementos para su publicación.

Mantén los permisos limitados

Cuando defines tus alcances de forma explícita, siempre elige el conjunto de alcances menos permisivo posible. Por ejemplo, no hagas que el complemento solicite acceso completo al Calendario del usuario con el permiso https://www.googleapis.com/auth/calendar si solo necesita acceso de lectura. Para el acceso de solo lectura, usa el permiso https://www.googleapis.com/auth/calendar.readonly.

Evita depender demasiado de las bibliotecas

El uso de las bibliotecas de Apps Script puede hacer que tu complemento se ejecute más lento de lo que lo haría si todo el código de Apps Script estuviera contenido en un solo proyecto de secuencia de comandos. Si bien las bibliotecas de Apps Script funcionan en complementos, es posible que experimentes reducciones de rendimiento si las usas. Evita incluir bibliotecas innecesarias en tu proyecto y considera formas de reducir la dependencia de tu complemento en ellas.

La latencia descrita anteriormente solo se aplica a los proyectos de Apps Script que se usan como bibliotecas del servidor. Puedes usar bibliotecas de JavaScript del cliente, como jQuery, libremente sin encontrar esta latencia.

Prácticas recomendadas para complementos de Google Workspace

Las siguientes prácticas recomendadas solo se aplican a los complementos de Google Workspace y al uso del servicio de tarjetas.

Usa solo algunas tarjetas

Si el complemento usa demasiadas tarjetas, la configuración de navegación se vuelve compleja y difícil de administrar.

Evita el impulso de crear más tarjetas de las necesarias.

Usa funciones de creación de widgets

Cuando escribas código que cree Card u otros objetos complejos de la IU, considera colocar ese código en su propia función. Esta función de creación solo debe compilar el objeto y mostrarlo. Esto te permite regenerar rápidamente ese objeto cada vez que se debe actualizar la IU. Recuerda llamar a build() después de usar las clases de generador en el servicio de tarjetas.

Mantén las tarjetas simples

Si una tarjeta tiene demasiados widgets, puede ocupar demasiado espacio en la pantalla y ser menos útil. Si bien las secciones de tarjetas grandes se renderizan como elementos de IU que se pueden contraer, esto oculta información al usuario. Intenta optimizar tu complemento y brindar exactamente lo que el usuario necesita y nada más.

Usa tarjetas de error

Crea tarjetas para condiciones de error. Si tu complemento genera un error, debería mostrar una tarjeta con la información del error y las instrucciones para corregirlo, si es posible. Por ejemplo, si tu complemento no pudo conectarse a un servicio que no es de Google porque falló la autorización, muestra una tarjeta que lo indique y pídele al usuario que verifique la información de la cuenta que se está usando.

Cómo escribir pruebas y mensajes de prueba

Debes probar exhaustivamente todos los complementos que crees. Compila funciones de prueba que creen tarjetas y widgets con datos de prueba y, luego, verifica que los objetos se creen como se espera.

Cuando usas funciones de devolución de llamada de acción, por lo general, debes crear un objeto de respuesta. Puedes usar instrucciones como las siguientes para verificar que las respuestas se estén construyendo correctamente:

    Logger.log(response.printJson());

Ejecuta las funciones de prueba que crees directamente desde el editor de Apps Script con el menú Run. Cuando tengas un complemento viable en funcionamiento, asegúrate de instalar la versión no publicada para probarlo.

Usa datos de prueba adecuados para cada aplicación host a la que se extiende el complemento. Por ejemplo, si el complemento extiende Gmail, es probable que necesites algunos correos electrónicos de prueba y sus IDs de mensaje para asegurarte de que el complemento funcione como se espera cuando se le proporciona contenido de mensajes diferente. Para obtener el ID de un mensaje determinado, puedes enumerar los mensajes con el método Users.messages.list de la API de Gmail o usar el servicio de Gmail de Apps Script.

Prácticas recomendadas para las conferencias de Calendario

Si tu complemento integra opciones de conferencias de calendario de terceros en el Calendario de Google, sigue estas prácticas recomendadas adicionales:

Mantén la luz de onCreateFunction encendida

Cada onCreateFunction que definas en tu manifiesto se llamará de forma síncrona cuando un usuario intente crear una solución de conferencia de ese tipo. Asegúrate de que estas funciones solo realicen el trabajo mínimo necesario para crear la conferencia. Si haces demasiado en estas funciones, es posible que la experiencia del usuario de tu complemento sea lenta.

Usa los campos ConferenceData adecuados para los datos de la conferencia

Cuando compilas objetos ConferenceData, puedes propagarlos con detalles sobre la conferencia (códigos de acceso, números de teléfono, pines, URIs, etcétera). Asegúrate de usar el campo EntryPoint correspondiente para esta información. No coloques estos detalles en el campo de notas ConferenceData.

No adjuntes detalles de la conferencia al evento del Calendario de Google

No es necesario que el complemento agregue información sobre las conferencias de terceros creadas a la descripción del evento del Calendario de Google. El Calendario de Google hace esto automáticamente cuando es necesario.