Los usuarios deben autorizar los complementos y otras aplicaciones que acceden a sus datos o actúan en su nombre. Cuando un usuario ejecuta un complemento por primera vez, la IU del complemento presenta un mensaje de autorización para iniciar el flujo de autorización.
Durante este flujo, el mensaje le indica al usuario lo que la aplicación quiere hacer con el permiso. Por ejemplo, un complemento podría querer permiso para leer el mensaje de correo electrónico de un usuario o crear eventos en su calendario. El proyecto de secuencia de comandos del complemento define estos permisos individuales como permisos de OAuth.
Los permisos se declaran en el manifiesto con cadenas de URL. Durante el flujo de autorización, Apps Script presenta al usuario una descripción legible por humanos del permiso. Por ejemplo, tu complemento podría usar el permiso "Leer el documento actual", que se escribe en el manifiesto como https://www.googleapis.com/auth/documents.currentonly. Durante el flujo de autorización, un complemento con este permiso le solicita al usuario que permita que el complemento vea y administre los documentos en los que se instaló esta aplicación.
Los permisos que usa Apps Script para sus diversos servicios se superponen con los permisos que usa la API relacionada. Por ejemplo, el servicio Calendar de Apps Script usa muchos de los mismos permisos que la API de Calendar. Puedes buscar los permisos que requieren los métodos de servicio de Apps Script en particular en la documentación de referencia de Apps Script .
Ver permisos
Para ver los permisos que requiere actualmente tu proyecto de secuencia de comandos, haz lo siguiente:
- Abre el proyecto de secuencia de comandos.
- A la izquierda, haz clic en Información .
- Consulta los permisos en "Permisos de OAuth del proyecto".
También puedes ver los permisos actuales del proyecto de secuencia de comandos en el manifiesto del proyecto,
en el campo oauthScopes, pero solo si configuraste esos permisos de forma explícita.
Establecer permisos explícitos
Apps Script determina automáticamente qué permisos necesita una secuencia de comandos mediante el análisis de su código en busca de llamadas a funciones que los requieran. Para la mayoría de las secuencias de comandos, esto es suficiente y te ahorra tiempo, pero para los complementos publicados, debes ejercer un control más directo de los permisos.
Por ejemplo, Apps Script podría otorgar a un proyecto de secuencia de comandos de complemento el permiso muy permisivo https://mail.google.com de forma predeterminada. Cuando un usuario autoriza un proyecto de secuencia de comandos con este permiso, el proyecto obtiene acceso completo a la cuenta de Gmail del usuario. Para los complementos publicados, debes reemplazar este permiso por un conjunto más limitado que cubra las necesidades del complemento y nada más.
Puedes establecer de forma explícita los permisos que usa tu proyecto de secuencia de comandos editando
su archivo de manifiesto. El campo de manifiesto
oauthScopes es un array
de todos los permisos que usa el complemento. Para establecer los permisos de tu proyecto, haz lo siguiente:
- Consulta los permisos que usa tu complemento. Determina qué cambios se deben realizar, como usar un permiso más limitado.
- Abre el archivo de manifiesto de tu complemento.
- Ubica el campo de nivel superior etiquetado como
oauthScopes. Si no está presente, puedes agregarlo. El
oauthScopescampo especifica un array de cadenas. Para establecer los permisos que usa tu proyecto, reemplaza el contenido de este array por los permisos que deseas que use. Por ejemplo, para un complemento del editor que extiende Hojas de cálculo, podrías tener lo siguiente:{ ... "oauthScopes": [ "https://www.googleapis.com/auth/script.container.ui", "https://www.googleapis.com/auth/spreadsheets" ], ... }Guarda los cambios en el archivo de manifiesto.
Verificación de OAuth
El uso de ciertos permisos de OAuth sensibles puede requerir que tu complemento pase por la verificación del cliente de OAuth antes de que puedas publicarlo. Si deseas obtener más información, consulta las siguientes guías:
- Verificación del cliente de OAuth para Apps Script
- Apps sin verificar
- Preguntas frecuentes sobre la verificación de OAuth
- Servicio de las APIs de Google: Política de Datos del Usuario
Permisos restringidos
Ciertos permisos están restringidos y sujetos a reglas adicionales que ayudan a proteger los datos del usuario. Si deseas publicar un complemento de Gmail o del editor que use uno o más permisos restringidos, el complemento debe cumplir con todas las restricciones especificadas antes de que se pueda publicar.
Revisa la lista completa de permisos restringidos antes de intentar publicar. Si tu complemento usa alguno de ellos, debes cumplir con los Requisitos adicionales para permisos de API específicos antes de la publicación.
La extensión de Herramientas para desarrolladores de Google Workspace para Visual Studio Code proporciona información de diagnóstico para todos los permisos, incluida la descripción del permiso y si es sensible o restringido.
Permisos de complementos del editor
Cuando compilas un complemento del editor, los permisos requeridos se determinan según el servicio y los métodos de Google Apps Script que usa el código del complemento. Por ejemplo, un complemento de Hojas de cálculo de Google podría necesitar el permiso https://www.googleapis.com/auth/spreadsheets.readonly para leer información de diferentes hojas de cálculo.
Apps Script determina automáticamente los permisos que requieren los servicios que usas a medida que agregas código a tu proyecto de secuencia de comandos. Para los complementos del editor, a menudo puedes confiar en esta recopilación automática de permisos en lugar de determinar los permisos por tu cuenta y establecerlos de forma explícita.
Si no estableces los permisos de forma explícita y tu complemento del editor solo lee o escribe en el archivo del editor abierto, agrega el siguiente comentario a uno de los archivos de tu proyecto de secuencia de comandos:
/**
* @OnlyCurrentDoc
*/
Este comentario le indica a Apps Script que reduzca los permisos del archivo del editor que establece en currentonly. Por ejemplo, si agregas este comentario a un archivo de proyecto de secuencia de comandos de complemento de Hojas de cálculo, especificas que el complemento solo necesita permiso para operar en la hoja de cálculo abierta y no en ninguna otra que el usuario pueda tener en Google Drive. Por el contrario, no debes usar este comentario si tu complemento de Hojas de cálculo necesita leer o escribir datos en una hoja de cálculo que el usuario no tiene abierta.