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 muestra 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 le presenta al usuario una descripción del alcance que es legible. Por ejemplo, tu complemento podría usar el alcance "Leer el documento actual", que se escribe en tu manifiesto como https://www.googleapis.com/auth/documents.currentonly
. Durante el flujo de autorización, un complemento con este alcance le solicita al usuario que permita que el complemento vea y administre los documentos en los que se instaló esta aplicación.
Cómo ver los permisos
Para ver los alcances 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 Descripción general .
- 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 estableciste esos permisos explícitamente.
Configuración de permisos explícitos
Apps Script determina automáticamente qué permisos necesita una secuencia de comandos analizando 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 al proyecto de secuencia de comandos de un complemento el alcance https://mail.google.com
muy permisivo de forma predeterminada. Cuando un usuario autoriza un proyecto de secuencia de comandos con este alcance, se le otorga al proyecto acceso completo a la cuenta de Gmail del usuario. En el caso de los complementos publicados, debes reemplazar este permiso por un conjunto más limitado que satisfaga 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 del manifiesto oauthScopes
es un array de todos los permisos que usa el complemento. Para establecer los alcances de tu proyecto, haz lo siguiente:
- Consulta los permisos que usa actualmente tu complemento. Determina qué cambios se deben realizar, como usar un alcance más limitado.
- Abre el archivo de manifiesto del complemento.
- Ubica el campo de nivel superior etiquetado como
oauthScopes
. Si no está presente, puedes agregarlo. El campo
oauthScopes
especifica un array de cadenas. Para establecer los alcances que usa tu proyecto, reemplaza el contenido de este array por los alcances 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 sensibles de OAuth 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 de clientes de OAuth para Apps Script
- Apps no verificadas
- Preguntas frecuentes sobre la verificación de OAuth
- Servicio de las APIs de Google: Política de Datos del Usuario
Permisos restringidos
Algunos permisos son restringidos y están sujetos a reglas adicionales que ayudan a proteger los datos del usuario. Si planeas publicar un complemento de Gmail o de 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 los permisos restringidos antes de intentar publicar. Si tu complemento usa alguno de ellos, debes cumplir con los requisitos adicionales para los alcances de API específicos antes de publicarlo.
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 del complemento del editor
Cuando compilas un complemento del Editor, los permisos requeridos se determinan según el servicio y los métodos de Apps Script que usa el código del complemento. Por ejemplo, un complemento de Hojas de cálculo podría necesitar el alcance https://www.googleapis.com/auth/spreadsheets.readonly
para leer información de diferentes hojas de cálculo de Google.
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. En el caso de 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 configuras tus 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 de archivo del editor que establece a currentonly
. Por ejemplo, si agregas este comentario a un archivo de proyecto de secuencia de comandos de un complemento de Hojas de cálculo de Google, especificas que el complemento solo necesita permiso para operar en la hoja abierta actualmente y no en ninguna otra hoja 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 que el usuario no abrió.