Solución de problemas

Incluso el desarrollador más experimentado rara vez escribe código correctamente la primera vez. intenta hacer de la solución de problemas una parte importante del proceso de desarrollo. En En esta sección, veremos algunas técnicas que pueden ayudarte a encontrar, comprender depurar errores en tus secuencias de comandos.

Mensajes de error

Cuando se detecta un error en la secuencia de comandos, se muestra un mensaje de error. El mensaje junto con un número de línea que se usa para solucionar problemas. Existen dos tipos de modelos tipos de errores que se muestran de esta manera: errores de sintaxis y errores de entorno de ejecución.

Errores de sintaxis

Los errores de sintaxis se producen cuando se escribe código que no sigue el código JavaScript y los errores se detectan en cuanto intenta guardar la secuencia de comandos. Por ejemplo, el siguiente fragmento de código contiene un error de sintaxis:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ";
  MailApp.sendEmail('john@example.com',
                    'Data in row ' + rowNumber,
                    rowData);
}

El problema de sintaxis aquí es que falta un carácter ) al final de la cuarta línea. Cuando intentes guardar la secuencia de comandos, verás el siguiente error:

Falta ")" detrás de la lista de argumentos. (línea 4)

Estos tipos de errores suelen ser fáciles de solucionar, ya que se encuentran de inmediato y suelen tener causas simples. No puedes guardar un que contiene errores de sintaxis, lo que significa que solo el código válido se guarda en tu proyecto.

Errores de entorno de ejecución

Estos errores se producen cuando usas una función o clase de forma incorrecta, y solo pueden una vez que se haya ejecutado la secuencia de comandos. Por ejemplo, el siguiente código provoca un error de entorno de ejecución:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ");
  MailApp.sendEmail('john',
                    'Data in row ' + rowNumber,
                    rowData);
}

El código tiene el formato correcto, pero estamos pasando el valor "john" para el dirección de correo electrónico cuando llames a MailApp.sendEmail. Como este no es un dirección de correo electrónico válida, se muestra el siguiente error cuando se ejecuta la secuencia de comandos:

Correo electrónico no válido: john (línea 5)

Lo que hace que estos errores sean más difíciles de solucionar es que, a menudo, los datos que pasas a una función no está escrito en el código, sino que desde una hoja de cálculo, un formulario o cualquier otra fuente de datos externa. Usa la herramienta a continuación puede ayudarte a identificar la causa de estos errores.

Errores comunes

A continuación, se incluye una lista de errores comunes y sus causas.

El servicio se ha solicitado demasiadas veces: <action name>.

Este error indica que excediste la cuota diaria para una acción determinada. Por ejemplo, podrías recibir este error si envías demasiados correos electrónicos en una día. Las cuotas se establecen en diferentes niveles de consumidor, dominio y Premium y están sujetas a cambios en cualquier momento sin previo aviso, de Google. Puedes ver los límites de cuota para diversas acciones en el Documentación sobre cuotas de Apps Script.

El servidor no está disponible o Se produjo un error de servidor.Vuelve a intentarlo.

Estos errores pueden deberse a varias causas:

  • Un servidor o sistema de Google no está disponible temporalmente. Espera un momento e intente ejecutar la secuencia de comandos nuevamente.
  • Hay un error en tu secuencia de comandos que no le corresponde al error mensaje. Intenta depurar la secuencia de comandos y ver si puedes aislar el problema.
  • Hay un error en Google Apps Script que está causando este error. Para instrucciones para buscar y presentar informes de errores, consulta la Errores. Antes de informar un error nuevo, realiza una búsqueda para ver si otras personas ya lo denunciaron.

Se requiere autorización para realizar esa acción.

Este error indica que a la secuencia de comandos le falta la autorización necesaria para ejecutarse. Cuando se ejecuta una secuencia de comandos en el editor de secuencias de comandos o desde un elemento de menú personalizado, se muestra al usuario el diálogo de autorización. Sin embargo, cuando se ejecuta una secuencia de comandos desde un activador, incorporado en una página de Google Sites o ejecutarse como un servicio, el no se puede presentar el diálogo y se muestra este error.

Para autorizar la secuencia de comandos, abre el editor de secuencias de comandos y ejecuta cualquier función. El Se mostrará un mensaje de autorización para que puedas autorizar el proyecto de secuencia de comandos. Si el botón incluye nuevos servicios no autorizados, debes volver a autorizarla.

A menudo, este error se debe a activadores que se activan antes de usuario los autorizó. Si no tienes acceso al proyecto de la secuencia de comandos (debido a que el error se produce en un complemento que usar, por ejemplo), puedes autorizar la secuencia de comandos con el complemento de nuevo. Si un activador continúa produciendo este error, puedes quitar tu activadores de la siguiente manera:

  1. A la izquierda del proyecto de Apps Script, haz clic en Activadores .
  2. A la derecha del activador que deseas quitar, haz clic en Más . &gt; Borrar activador.

También puedes quitar los activadores de complementos problemáticos de la siguiente manera: desinstalar el complemento.

Acceso denegado: DriveApp o La política del dominio inhabilitó las apps de Drive de terceros.

Los administradores de Google Workspace dominios tienen las la capacidad de inhabilitar el la API de Drive para su dominio, lo que impide que los usuarios instalar y usar las aplicaciones de Google Drive. Este parámetro de configuración también impide de usar los complementos de Apps Script que usan Servicio de Drive o Servicio avanzado de Drive (incluso si la secuencia de comandos estaba autorizada antes de que el administrador inhabilitara la API de Drive).

Sin embargo, si se publica un complemento o una aplicación web que usa el servicio de Drive para para todo el dominio y lo instala el administrador para algunos o todos los usuarios del dominio, las funciones de secuencia de comandos para esos usuarios, incluso si la API de Drive está deshabilitada en el dominio.

La secuencia de comandos no tiene permiso para obtener la identidad del usuario activo.

Indica que la identidad y el correo electrónico del usuario activo no están disponibles para el secuencia de comandos. Esta advertencia es el resultado de una llamada a Session.getActiveUser() También puede ser el resultado de una llamada a Session.getEffectiveUser() si la secuencia de comandos se ejecuta en un modo de autorización distinto del AuthMode.FULL Si se indica esta advertencia, las llamadas posteriores a User.getEmail() solo muestra “”.

Existen varias formas de solucionar esta advertencia, según el el modo de autorización en el que se ejecuta la secuencia de comandos. El modo de autorización es que se exponen en las funciones activadas como Propiedad authMode de e parámetro de evento.

  • En AuthMode.FULL, considera usar Session.getEffectiveUser() en su lugar.
  • En AuthMode.LIMITED, asegúrate de lo siguiente: el propietario autorizó la secuencia de comandos.
  • En otros modos de autorización, evita llamar a cualquiera de los métodos.
  • Si eres un Google Workspace cliente nuevo recibiendo esta advertencia de una activador instalable, asegúrate de que el activador se ejecuta como un usuario de tu organización.

Falta la biblioteca

Si agregas una library popular a tu secuencia de comandos, sigue estos pasos: Es posible que recibas un mensaje de error que indica que falta, aunque la biblioteca aparece como una dependencia para tu guion. Esto puede deberse a que demasiadas personas están accediendo a la biblioteca. al mismo tiempo. Para evitar este error, prueba una de las siguientes soluciones:

  • Copia y pega el código de la biblioteca en tu secuencia de comandos y quítala dependencia.
  • Copia la secuencia de comandos de la biblioteca y, luego, impleméntala como una biblioteca desde tu cuenta. Asegúrate de que para actualizar la dependencia de tu secuencia de comandos original a la biblioteca nueva en lugar de la pública.

Se produjo un error debido a que faltaba una versión de la biblioteca o una versión de implementación. Código de error Not_Found

Este mensaje de error indica una de las siguientes opciones:

  • Se borró la versión implementada de la secuencia de comandos. Para actualizar los registros una versión de tu secuencia de comandos, consulta Edita un del proyecto.
  • Se eliminó la versión de una biblioteca que utiliza la secuencia de comandos. Para comprobar cuál falta la biblioteca, junto al nombre de la biblioteca, haz clic Más &gt; Abrir en una pestaña nueva. La biblioteca faltante muestra un mensaje de error. Una vez que encuentres la biblioteca que necesitas actualizar, realizar una de las siguientes acciones:
  • La secuencia de comandos de una biblioteca que usa la secuencia incluye otro que usa una versión borrada. Realiza una de las siguientes acciones:
    • Si tienes acceso de edición a la biblioteca utilizada por la secuencia de comandos, actualiza el biblioteca secundaria en esa secuencia de comandos a una versión existente.
    • Actualiza la biblioteca para usar una versión diferente. Consulta Actualizar un biblioteca.
    • Quita la biblioteca de tu código y proyecto de secuencia de comandos. Consulta Quita una biblioteca.

Error 400: invalid_scope cuando llames a la API de Google Chat con el servicio avanzado

Si encuentras Error 400: invalid_scope con el mensaje de error Some requested scopes cannot be shown: significa que no especificaste ningún alcance de autorización en la Archivo appsscript.json del proyecto de Apps Script. En la mayoría de los casos, Apps Script determina automáticamente qué permisos necesita una secuencia de comandos pero cuando usas el servicio avanzado de Chat, debes agregar los permisos de autorización que usa la secuencia de comandos para Archivo de manifiesto del proyecto de Apps Script. Consulta Configurar permisos explícitos.

Para resolver el error, agrega los permisos de autorización adecuados al archivo appsscript.json del proyecto Apps Script como parte de el array oauthScopes. Por ejemplo, para llamar al spaces.messages.create agrega lo siguiente:

"oauthScopes": [
  "https://www.googleapis.com/auth/chat.messages.create"
]

Depuración

No todos los errores hacen que se muestre un mensaje de error. Puede haber una cuando el código es técnicamente correcto y puede ejecutarse, los resultados no son lo que esperas. Estas son algunas estrategias para manejar situaciones e investigar más a fondo una secuencia de comandos que no se ejecuta de la manera en que lo que esperas.

Logging

Durante la depuración, suele ser útil registrar la información como un proyecto de script que se ejecute. Google Apps Script tiene dos métodos para registrar información: el Servicio de Cloud Logging y los servicios de consola y registrador más básicos integradas en el editor de Apps Script.

Consulta la guía de Logging para obtener más detalles.

Error Reporting

Las excepciones que ocurren debido a errores de entorno de ejecución se registrados, con el servicio de Google Cloud Error Reporting. Este servicio te permite buscar y filtrar los mensajes de excepción que crea el proyecto de secuencia de comandos.

Para acceder a Error Reporting, consulta Visualiza los registros de Cloud y los informes de errores en Consola de Google Cloud.

Ejecuciones

Cada vez que ejecuta una secuencia de comandos, Apps Script registra la ejecución. incluidos los registros de Cloud. Estos registros pueden ayudarte a comprender acciones que realizó el guion.

Para ver las ejecuciones de tu secuencia de comandos en la Proyecto de Apps Script, a la izquierda, haz clic en Ejecuciones

Verifica el estado del servicio de Apps Script

Aunque es poco frecuente, a veces es específico para usar Google Workspace. servicios (como Gmail o Drive) encontrar problemas temporales que pueden provocar interrupciones del servicio. Cuando esta se produce un error, es posible que los proyectos de Apps Script que interactúen con estos servicios no funcionen como se esperaba.

Puedes comprobar si hay un servicio de Google Workspace interrupción, consultando el Google Workspace Status Dashboard. Si se produce una interrupción que se está experimentando en el momento, debes esperar a que se resuelva o buscar ayuda adicional en el Centro de ayuda de Google Workspace o el Problemas conocidos de Google Workspace en la documentación de Google Cloud.

Usa el depurador y los puntos de interrupción

Para identificar problemas en tu secuencia de comandos, puedes ejecutarla en modo de depuración. Cuando se ejecute en modo de depuración, una secuencia de comandos se detiene cuando llega a un punto de interrupción, que es una línea que destacado en el guion que crees que puede tener un problema. Cuando una secuencia de comandos hace una pausa, se muestra el valor de cada variable en ese momento, lo que te permite inspeccionar el funcionamiento interno de un script sin tener que agregar muchas instrucciones de registro.

Agregar un punto de interrupción

Para agregar un punto de interrupción, coloca el cursor sobre el número de línea de la línea que quieres agregar. punto de interrupción. A la izquierda del número de línea, haz clic en el círculo. Lo siguiente En la imagen, se muestra un ejemplo de un punto de interrupción agregado a una secuencia de comandos:

Agregar un punto de interrupción

Cómo ejecutar una secuencia de comandos en modo de depuración

Para ejecutar la secuencia de comandos en modo de depuración, haz clic en Debug en la parte superior del editor.

Antes de que la secuencia de comandos ejecute la línea con el punto de interrupción, se detiene y muestra un de información de depuración. Puedes usar esta tabla para inspeccionar datos como el los valores de los parámetros y la información almacenada en los objetos.

Para controlar cómo se ejecuta la secuencia de comandos, en la parte superior del panel Debugger, usa las columnas "Step in", "Step over" y "Step out" botones. Estos te permiten ejecutar escribe una línea a la vez e inspecciona cómo cambian los valores con el tiempo.

Problemas con varias Cuentas de Google

Si accediste a varias Cuentas de Google al mismo tiempo, es posible que tienen problemas para acceder a tus complementos y aplicaciones web. Acceso múltiple o haber accedido a varias Cuentas de Google a la vez, no es compatible con Apps Secuencias de comandos, complementos o aplicaciones web

  • Si abres el editor de Apps Script mientras accedes a más de una cuenta, Mensajes de Google elegir la cuenta con la que deseas continuar.

  • Si abres una aplicación web o un complemento y tienes problemas de acceso múltiple, prueba una de las siguientes opciones: las siguientes soluciones:

    • Sal de todas tus Cuentas de Google y accede solo a la que tenga complemento o app web a la que quieras acceder.
    • Abrir una ventana de incógnito en Google Chrome o una ventana de navegación privada equivalente y acceda a la Cuenta de Google que tiene el complemento o la aplicación web a los que quieren acceder.

Cómo obtener ayuda

La depuración de un problema usando las herramientas y técnicas mencionadas anteriormente puede resolver un varios problemas, pero es posible que haya otros que requieran ayuda adicional para resolver. Consulta la página de asistencia para información sobre dónde hacer preguntas e informar errores.