Autorización para los servicios de Google

Google Apps Script requiere la autorización del usuario para acceder a datos privados de los servicios integrados de Google o los servicios avanzados de Google.

Cómo funciona la autorización para los servicios de Google

Cuando una secuencia de comandos requiere acceso a los servicios de Google, sigue este proceso general:

  1. Detección: Apps Script analiza la secuencia de comandos para identificar qué servicios usa (por ejemplo, SpreadsheetApp o GmailApp).
  2. Determinación del alcance: Según el análisis, Apps Script identifica un conjunto de alcances de OAuth necesarios para que se ejecute la secuencia de comandos.
  3. Verificación de autorización: Cuando se ejecuta la secuencia de comandos, se verifica si el usuario ya autorizó esos alcances.
  4. Solicitud del usuario: Si falta la autorización, aparece un diálogo en el que se le solicita al usuario que otorgue permiso.
  5. Ejecución: Después de que se autoriza la secuencia de comandos, puede acceder a los datos solicitados para ese usuario.

Permisos y tipos de secuencias de comandos

La identidad del usuario con la que se ejecuta una secuencia de comandos (y, por lo tanto, los datos a los que puede acceder) varía según la situación en la que se ejecuta la secuencia de comandos, como se muestra en la siguiente tabla.

Tipo de secuencia de comandos La secuencia de comandos se ejecuta como...
Independiente, complemento de Google Workspace o vinculada a Documentos, Hojas de cálculo, Presentaciones o Formularios de Google Usuario en el teclado
Función personalizada en una hoja de cálculo Usuario anónimo; sin embargo, los límites de cuota se cuentan en contra del usuario en el teclado
Aplicación web o gadget de Google Sites Usuario en el teclado o propietario de la secuencia de comandos, según las opciones seleccionadas cuando se implementa la app
Activador instalable Usuario que creó el activador

Otorga derechos de acceso

Apps Script determina automáticamente los alcances de autorización (como el acceso a tus archivos de Hojas de cálculo o Gmail) en función de un análisis del código. El código que se comenta aún puede generar una solicitud de autorización. Si una secuencia de comandos necesita autorización, aparecerá un diálogo de autorización cuando se ejecute.

Las secuencias de comandos que autorizaste anteriormente también solicitan autorización adicional si un cambio de código agrega servicios nuevos. Es posible que las secuencias de comandos no soliciten autorización si accedes a ellas como una aplicación web que se ejecuta con la identidad de usuario del propietario de la secuencia de comandos.

Revoca los derechos de acceso

Para revocar el acceso de una secuencia de comandos a tus datos, sigue estos pasos:

  1. Visita la sección Seguridad de tu Cuenta de Google.
  2. En Tus conexiones con apps y servicios de terceros, haz clic en Ver todas las conexiones.
  3. Selecciona la secuencia de comandos o la app para la que deseas revocar el acceso.
  4. Haz clic en Borrar todas las conexiones que tienes con APP_NAME y, luego, en Confirmar.

Limita el alcance al documento actual

Si compilas un complemento o cualquier otra secuencia de comandos que use el servicio de Hojas de cálculo, el servicio de Documentos, el servicio de Presentaciones o el servicio de Formularios, puedes forzar el diálogo de autorización para que solo solicite acceso a los archivos en los que se usa el complemento o la secuencia de comandos, en lugar de a todas las hojas de cálculo, documentos o formularios de un usuario. Para ello, incluye la siguiente JSDoc en un comentario a nivel de archivo:

/**
 * @OnlyCurrentDoc
 */

Si tu secuencia de comandos incluye una biblioteca que declara @OnlyCurrentDoc, pero la secuencia de comandos principal requiere acceso a más que el archivo actual, hay disponible una anotación opuesta, @NotOnlyCurrentDoc.

Ciclo de vida de la autorización para complementos

Los complementos de Hojas de cálculo, Documentos, Presentaciones y Formularios suelen seguir el mismo modelo de autorización que las secuencias de comandos que están vinculadas a un documento. Sin embargo, en ciertas circunstancias, sus funciones onOpen(e) y onEdit(e) se ejecutan en un modo sin autorización que presenta algunas complicaciones adicionales. Para obtener más información, consulta la guía sobre el ciclo de vida de la autorización de complementos.

Límites de usuarios de la aplicación de OAuth

Las aplicaciones que usan OAuth para acceder a los datos de los usuarios de Google, incluidos los proyectos de Apps Script, están sujetas a límites de autorización. Consulta Límites de usuarios de la aplicación de OAuth para obtener más detalles.

Comportamiento de la reautenticación con Apps Script

Apps Script no aplica la frecuencia de reautenticación que se configura en los parámetros de configuración del servicio de Google Cloud. Esto se debe a que Apps Script se puede ejecutar automáticamente con activadores, que operan sin interacción directa del usuario. Estas ejecuciones automatizadas no activan las solicitudes de reautenticación. Tu aplicación de Apps Script no te solicita automáticamente que te vuelvas a autenticar después del período especificado (por ejemplo, 12 horas).

Establece alcances explícitos en el manifiesto

Apps Script determina automáticamente los alcances requeridos mediante el análisis del código en busca de llamadas a funciones. Si necesitas más control, puedes establecer los alcances de forma explícita en el manifiesto del proyecto (appsscript.json). Se recomienda para las secuencias de comandos publicadas para garantizar que uses los permisos mínimos requeridos.

Para obtener instrucciones, consulta Establece alcances explícitos.

Solución de problemas

  • Error"Se requiere autorización" cuando se ejecuta un activador: Los activadores deben ser autorizados por el usuario que los creó. Si agregas código que requiere permisos nuevos, debes ejecutar manualmente una función en el editor de secuencias de comandos una vez para activar el diálogo de autorización.
  • Los alcances no se actualizan: Si actualizaste el código, pero el diálogo de autorización no refleja los cambios, intenta guardar el proyecto y actualizar el editor. Si usas alcances explícitos en el manifiesto, asegúrate de haber agregado el alcance nuevo al array oauthScopes.
  • "Se bloqueó esta app" o advertencia de app no verificada: Esto ocurre si tu secuencia de comandos usa alcances sensibles o restringidos y Google no la verificó. Consulta Verificación de cliente de OAuth.