Mejora la experiencia general de los usuarios siguiendo estas guías para el diseño de complementos.
Prácticas recomendadas generales
Te recomendamos que sigas las siguientes prácticas recomendadas para todos los complementos que desarrolles.
Determina la propiedad de los complementos antes de comenzar.
Los complementos se definen mediante proyectos de Apps Script, que deben ser propiedad de una cuenta específica o ubicados en una unidad compartida. Antes de codificar un complemento, determina qué cuenta debe ser propietaria del proyecto y qué cuenta actúa como su publicador. Además, 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 Cloud Platform asociado.
Extiende Google Workspace, no lo repliques
Los complementos están destinados a proporcionar nuevas capacidades a las aplicaciones de Google Workspace que extienden o a automatizar tareas complejas. Los complementos que solo replican funcionalidades que ya están dentro de la aplicación o los que no realizan mejoras significativas en un flujo de trabajo probablemente no pasarán la revisión de complementos para su publicación.
Limitar los alcances
Cuando definas tus alcances de forma explícita, siempre elige el conjunto de permisos menos permisivo posible. Por ejemplo, no solicites al complemento 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 bibliotecas de Apps Script puede hacer que el complemento se ejecute más lentamente de lo que sería si todo el código de Apps Script estuviera contenido en un solo proyecto de secuencia de comandos. Aunque las bibliotecas de Apps Script funcionan en complementos, puedes experimentar reducciones de rendimiento si las usas. Evita incluir bibliotecas innecesarias en tu proyecto y considera la forma 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 las bibliotecas de JavaScript del cliente, como jQuery, con libertad, sin encontrar esta latencia.
Prácticas recomendadas sobre el complemento de Google Workspace
Las siguientes prácticas recomendadas solo se aplican a los complementos de Google Workspace y al uso del servicio de Card.
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 lo necesario.
Usa funciones de creación de widgets
Cuando escribas código que cree Card
o, también, otros objetos complejos de la IU, considera colocar ese código en su propia función.
Esta función de creación debe simplemente compilar el objeto y mostrarlo. Esto te permite regenerar rápidamente ese objeto cada vez que la IU debe actualizarse. Recuerda llamar a build()
después de usar las clases de compilador en el servicio de Tarjeta.
Tarjetas simples
Si una tarjeta determinada tiene demasiados widgets, puede ocupar demasiado espacio en la pantalla y volverse menos útil. Si bien las secciones de tarjetas grandes se procesan como elementos de IU que se pueden contraer, esto oculta la información al usuario. Intenta optimizar tu complemento y proporciona exactamente lo que el usuario necesita.
Usar tarjetas de error
Crea tarjetas para las condiciones de error. Si el complemento produce un error, debería mostrar una tarjeta con la información del error y las instrucciones para corregirlo. Por ejemplo, si tu complemento no se pudo conectar a un servicio que no sea de Google porque falló la autorización, muestra una tarjeta en la que se indique esto y pídele al usuario que verifique la información de la cuenta que se está usando.
Escribir pruebas y enviar mensajes de prueba
Debes probar exhaustivamente todos los complementos que crees. Crea funciones de prueba que creen tarjetas y widgets mediante los 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 construir un objeto de respuesta. Puedes usar declaraciones como las siguientes para verificar que las respuestas se compilen de forma correcta:
Logger.log(response.printJson());
Ejecuta las funciones de prueba que crees directamente desde el editor de Apps Script con el menú Ejecutar. Cuando tengas un complemento viable en funcionamiento, asegúrate de instalar la versión no publicada para que puedas probarlo.
Use los datos de prueba adecuados para cada aplicación de host que el complemento extienda. Por ejemplo, si el complemento extiende Gmail, es probable que necesites algunos correos electrónicos de prueba y sus ID de mensaje para poder asegurarte de que el complemento funcione como se espera cuando se proporcione un contenido de mensaje diferente. Puedes obtener el ID de mensaje de un mensaje determinado si enumeras los mensajes con el método Users.messages.list de la API de Gmail o si usas el servicio de Gmail de Apps Script.
Prácticas recomendadas para las reuniones de Calendario
Si tu complemento integra opciones de conferencia de calendario de terceros en Calendario de Google, sigue estas prácticas recomendadas adicionales:
Mantén la onCreateFunction
encendida.
Cada onCreateFunction
que defines en tu manifiesto se llama de forma síncrona cuando un usuario intenta crear una solución de conferencia de ese tipo. Asegúrate de que estas funciones solo hagan el trabajo mínimo necesario para crear la conferencia. El uso excesivo de estas funciones puede generar una experiencia lenta para el complemento.
Usar los campos ConferenceData
correspondientes para los datos de conferencia
Cuando compilas objetos ConferenceData
, puedes propagarlos con detalles sobre la conferencia (códigos de acceso, números de teléfono, marcadores, URI, 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 agregar detalles de la conferencia al evento de Calendario de Google
Tu complemento no necesita agregar información sobre las conferencias de terceros creadas en la descripción del evento de Calendario de Google. El Calendario de Google lo hace automáticamente cuando es necesario.