Permisos

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 tu manifiesto con cadenas de URL. Durante el flujo de autorización, Apps Script le presenta al usuario una descripción legible del alcance. Por ejemplo, tu complemento de Google Workspace podría usar el alcance "Leer el mensaje actual", que se escribe en tu manifiesto como https://www.googleapis.com/auth/gmail.addons.current.message.readonly. Durante el flujo de autorización, un complemento con este alcance le solicita al usuario que permita que el complemento vea sus mensajes de correo electrónico cuando se esté ejecutando.

Los permisos que Apps Script usa para sus diversos servicios se superponen con los permisos que usa la API relacionada. Por ejemplo, el servicio de Calendar de Apps Script usa muchos de los mismos alcances que la API de Calendar. Puedes consultar los alcances que requieren los métodos de servicio de Apps Script en la documentación de referencia de Apps Script.

Ver permisos

Para ver los alcances que requiere tu proyecto de secuencia de comandos, haz lo siguiente:

  1. Abre el proyecto de secuencia de comandos.
  2. A la izquierda, haz clic en Descripción general .
  3. 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.

Establece permisos explícitos

Apps Script determina automáticamente qué permisos necesita un script 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 muy permisivo https://mail.google.com de forma predeterminada. Cuando un usuario autoriza un proyecto de secuencia de comandos con este alcance, se le otorga 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 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 del manifiesto oauthScopes es un array de todos los permisos que usa el complemento. Para establecer los alcances de tu proyecto, haz lo siguiente:

  1. Consulta los alcances que usa tu complemento. Determina qué cambios se deben realizar, como usar un alcance más limitado.
  2. Abre el archivo de manifiesto del complemento.
  3. Ubica el campo de nivel superior etiquetado como oauthScopes. Si no está presente, puedes agregarlo.
  4. El campo oauthScopes 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 de Google Workspace que extiende Gmail, podrías tener lo siguiente:

     {
       ...
       "oauthScopes": [
         "https://www.googleapis.com/auth/gmail.addons.current.message.metadata",
         "https://www.googleapis.com/auth/userinfo.email"
       ],
       ...
     }
    
  5. 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 se someta a la verificación del cliente de OAuth antes de que puedas publicarlo. Si deseas obtener más información, consulta las siguientes guías:

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 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 los permisos restringidos antes de intentar publicar. Si tu complemento usa alguno de ellos, debes cumplir con los requisitos adicionales para permisos específicos de API 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.

Elige permisos para los complementos de Google Workspace

En las siguientes secciones, se proporcionan los alcances que se suelen usar para los complementos de Google Workspace.

Permisos del editor

Los siguientes permisos de uso frecuente para los complementos de Google Workspace extienden Documentos de Google, Hojas de cálculo de Google y Presentaciones de Google.

Alcance
Acceso actual a archivos de Documentos https://www.googleapis.com/auth/documents.currentonly

Se requiere si el complemento accede a la API de Google Apps Script Docs. Otorga acceso temporal al contenido del documento abierto.

Acceso al archivo de Hojas de cálculo actual https://www.googleapis.com/auth/spreadsheets.currentonly

Se requiere si el complemento accede a la API de Hojas de cálculo de Apps Script. Otorga acceso temporal al contenido de la hoja de cálculo abierta.

Acceso actual al archivo de Presentaciones https://www.googleapis.com/auth/presentations.currentonly

Se requiere si el complemento accede a la API de Slides de Apps Script. Otorga acceso temporal al contenido de la presentación abierta.

Acceso por archivo https://www.googleapis.com/auth/drive.file

Se requiere para que el complemento use onFileScopeGrantedTrigger y si el complemento accede a las APIs de Documentos, Hojas de cálculo, Presentaciones o Drive. Otorga acceso por archivo a los archivos que crea o abre la app con el servicio avanzado de Google Drive de Apps Script. Esto no permite acciones similares con el servicio de Drive básico. La autorización de archivos se otorga para cada archivo y se revoca cuando el usuario anula la autorización de la app.

Gmail

Existen permisos creados específicamente para los complementos de Google Workspace que ayudan a proteger los datos de los usuarios de Gmail. Agrega estos permisos de forma explícita al manifiesto del complemento, junto con cualquier otro que se requiera.

En la siguiente tabla, se enumeran los permisos que se usan con frecuencia para los complementos de Google Workspace que extienden Gmail. Si tu complemento extiende Gmail, debes agregar todos los alcances etiquetados como Obligatorios al manifiesto de tu complemento de Google Workspace.

Reemplaza el permiso amplio https://mail.google.com por un conjunto más reducido de permisos que permitan las interacciones que necesita tu complemento.

Alcance
Crear versiones nuevas https://www.googleapis.com/auth/gmail.addons.current.action.compose

Obligatorio si el complemento usa activadores de acción de redacción. Permite que el complemento cree temporalmente mensajes y respuestas en borrador nuevos. Consulta Composición de mensajes borrador para obtener más detalles. Este alcance se suele usar con [acciones de redacción] (/workspace/add-ons/gmail/extending-compose-ui). Requiere un token de acceso.

Lectura de metadatos de mensajes abiertos https://www.googleapis.com/auth/gmail.addons.current.message.metadata

Otorga acceso temporal a los metadatos del mensaje abierto (como el asunto o los destinatarios). No permite leer el contenido de los mensajes y requiere un token de acceso.

Se requiere si el complemento usa metadatos en los activadores de acciones de redacción. Para las acciones de redacción, este permiso es obligatorio si un activador de redacción necesita acceder a los metadatos. En la práctica, este alcance permite que un activador de redacción acceda a las listas de destinatarios (Para:, Cc: y Cco:) de un borrador de correo electrónico de respuesta.

Leer el contenido de mensajes abiertos https://www.googleapis.com/auth/gmail.addons.current.message.action

Otorga acceso al contenido del mensaje abierto cuando el usuario interactúa con él, por ejemplo, cuando selecciona un elemento de menú de complemento. Requiere un token de acceso.

Leer el contenido de la conversación abierta https://www.googleapis.com/auth/gmail.addons.current.message.readonly

Otorga acceso temporal a los metadatos y el contenido del mensaje abierto. También otorga acceso al contenido de otros mensajes en el hilo abierto. Requiere un token de acceso.

Leer el contenido y los metadatos de cualquier mensaje https://www.googleapis.com/auth/gmail.readonly

Leer cualquier metadato y contenido de correo electrónico, incluido el mensaje abierto Se requiere si necesitas leer información sobre otros mensajes, por ejemplo, cuando realizas una búsqueda o lees un hilo de correo electrónico completo.

Permisos del Calendario de Google

En la siguiente tabla, se enumeran los permisos de uso frecuente para los complementos de Google Workspace que extienden el Calendario de Google.

Alcance
Accede a los metadatos de eventos https://www.googleapis.com/auth/calendar.addons.execute

Se requiere si el complemento accede a metadatos de eventos del Calendario. Permite que el complemento acceda a los metadatos de eventos.

Leer datos de eventos generados por el usuario https://www.googleapis.com/auth/calendar.addons.current.event.read

Se requiere si el complemento necesita leer datos de eventos generados por el usuario. Permite que el complemento acceda a los datos de eventos generados por el usuario. Estos datos solo están disponibles si el addOns.calendar.eventAccess campo del manifiesto está establecido en READ o READ_WRITE.

Escribe datos de eventos generados por el usuario https://www.googleapis.com/auth/calendar.addons.current.event.write

Se requiere si el complemento necesita escribir datos de eventos generados por el usuario. Permite que el complemento edite los datos de eventos generados por el usuario. Estos datos solo están disponibles si el addOns.calendar.eventAccess campo del manifiesto está establecido en WRITE o READ_WRITE.

Permisos de Google Chat

Para llamar a la API de Google Chat, autentícate como el usuario de Google Chat o como la app de Google Chat. Cada tipo de autenticación requiere diferentes alcances, y no todos los métodos de la API de Chat admiten la autenticación de la app.

Para obtener más información sobre los permisos y los tipos de autenticación de Chat, consulta la Descripción general de la autenticación y la autorización de la API de Chat.

En la siguiente tabla, se muestran los métodos y los alcances de la API de Chat que se usan con frecuencia según los tipos de autenticación admitidos:

Método Autenticación de usuarios compatible Se admite la autenticación de la app. Permisos de autorización admitidos
Enviar un mensaje Con la autenticación de usuarios:
  • chat.messages.create
  • chat.messages
  • chat.import
Con la autenticación de apps:
  • chat.bot
Cómo crear un espacio Con la autenticación de usuarios:
  • chat.spaces.create
  • chat.spaces
  • chat.import
Con la autenticación de la app y la aprobación del administrador (disponibles en la versión preliminar para desarrolladores):
  • chat.app.spaces.create
  • chat.app.spaces
Cómo crear un espacio y agregar miembros Con la autenticación de usuarios:
  • chat.spaces.create
  • chat.spaces
Cómo agregar un usuario a un espacio Con la autenticación de usuarios:
  • chat.memberships
  • chat.memberships.app
  • chat.import
Con la autenticación de la app y la aprobación del administrador (disponibles en la versión preliminar para desarrolladores):
  • chat.app.memberships
Enumera actividades o eventos de un espacio de Chat Con la autenticación de usuarios, debes usar un alcance para cada tipo de evento incluido en la solicitud:
  • Para los eventos relacionados con mensajes, se incluyen los siguientes campos:
    • chat.messages
    • chat.messages.readonly
  • Para los eventos sobre reacciones, haz lo siguiente:
    • chat.messages.reactions
    • chat.messages.reactions.readonly
    • chat.messages
    • chat.messages.readonly
  • Para los eventos relacionados con membresías, haz lo siguiente:
    • chat.memberships
    • chat.memberships.readonly
  • Para eventos sobre el espacio:
    • chat.spaces
    • chat.spaces.readonly

Permisos de Google Drive

En la siguiente tabla, se enumeran los alcances de uso frecuente para los complementos de Google Workspace que extienden Google Drive.

Alcance
Leer los metadatos del elemento seleccionado https://www.googleapis.com/auth/drive.addons.metadata.readonly

Se requiere si el complemento implementa una interfaz contextual que se activa cuando el usuario selecciona elementos en Drive. Permite que el complemento lea metadatos limitados sobre los elementos que un usuario seleccionó en Google Drive. Los metadatos se limitan al ID, el título, el tipo de MIME, la URL del ícono y si el complemento tiene permiso para acceder al elemento.

Acceso por archivo https://www.googleapis.com/auth/drive.file

Se recomienda si el complemento necesita acceder a archivos individuales de Drive. Otorga acceso por archivo a los archivos que crea o abre la app con el Servicio avanzado de Drive de Apps Script. Esto no permite acciones similares con el servicio de Drive básico. La autorización de archivos se otorga por archivo y se revoca cuando el usuario anula la autorización de la app. Consulta el ejemplo de solicitud de acceso a archivos seleccionados.

Tokens de acceso

Para proteger los datos del usuario, los alcances de Gmail que se usan en los complementos de Google Workspace otorgan acceso temporal a los datos del usuario. Para habilitar el acceso temporal, llama a GmailApp.setCurrentMessageAccessToken con un token de acceso de un objeto de evento de acción.

El token de acceso que habilita los permisos de Gmail no es el mismo que el token de acceso que devuelve ScriptApp.getOAuthToken. Usa el token proporcionado en el objeto del evento de acción.

A continuación, se muestra un ejemplo de cómo configurar un token de acceso para permitir el acceso a los metadatos de un mensaje. El único alcance necesario para este ejemplo es https://www.googleapis.com/auth/gmail.addons.current.message.metadata.

function readSender(e) {
  var accessToken = e.gmail.accessToken;
  var messageId = e.gmail.messageId;

  // The following function enables short-lived access to the current
  // message in Gmail. Access to other Gmail messages or data isn't
  // permitted.
  GmailApp.setCurrentMessageAccessToken(accessToken);
  var mailMessage = GmailApp.getMessageById(messageId);
  return mailMessage.getFrom();
}

Otros alcances de Google Workspace

Es posible que tu complemento requiera permisos adicionales si usa otros servicios de Google Workspace o Apps Script. En la mayoría de los casos, Apps Script detecta estos permisos y actualiza el manifiesto automáticamente. Cuando edites la lista de permisos del manifiesto, no quites ninguno, a menos que los reemplaces por una alternativa más restringida.

En la siguiente tabla, se muestran los alcances que suelen usar los complementos de Google Workspace:

Alcance
Leer la dirección de correo electrónico del usuario https://www.googleapis.com/auth/userinfo.email

Permite que el proyecto lea la dirección de correo electrónico del usuario actual.

Permite llamadas a servicios externos https://www.googleapis.com/auth/script.external_request

Permite que el proyecto realice solicitudes de UrlFetch. También es obligatorio si el proyecto usa la biblioteca de OAuth2 para Apps Script.

Leer la configuración regional y la zona horaria del usuario https://www.googleapis.com/auth/script.locale

Permite que el proyecto conozca la configuración regional y la zona horaria del usuario actual. Consulta Cómo acceder a la configuración regional y la zona horaria del usuario para obtener más detalles.

Crear activadores https://www.googleapis.com/auth/script.scriptapp

Permite que el proyecto cree activadores.

Obtén una vista previa de los vínculos de terceros https://www.googleapis.com/auth/workspace.linkpreview

Se requiere si el complemento muestra vistas previas de vínculos de un servicio de terceros. Permite que el proyecto vea un vínculo dentro de una aplicación de Google Workspace mientras el usuario interactúa con él. Para obtener más información, consulta Vínculos de vista previa con chips inteligentes.

Crea recursos de terceros https://www.googleapis.com/auth/workspace.linkcreate

Se requiere si el complemento crea recursos en un servicio de terceros. Permite que el proyecto lea la información que los usuarios envían al formulario de creación de recursos y que inserte un vínculo al recurso en una aplicación de Google Workspace. Para obtener más información, consulta Crea recursos de terceros desde el menú @.