En este documento, se explica cómo administrar las aprobaciones en la API de Google Drive.
Los usuarios pueden enviar documentos en Google Drive a través de un proceso formal de aprobación. Puedes usar este proceso para obtener la aprobación de una revisión de contrato o un documento oficial antes de su publicación. Una aprobación hace un seguimiento del estado de la revisión (como En curso, Aprobada o Rechazada) y de los revisores involucrados. Las aprobaciones son una excelente manera de validar el contenido y mantener un registro de los revisores.
Puedes crear y administrar aprobaciones de contenido en Drive. La API de Google Drive proporciona el recurso approvals para trabajar con aprobaciones de archivos. Los métodos del recurso approvals funcionan en elementos de Drive, Documentos de Google y otros editores de Google Workspace. Los revisores pueden aprobar documentos, rechazarlos o dejar comentarios en ellos directamente.
Antes de comenzar
Tu archivo debe contener la capacidad
canStartApproval. Para verificar las capacidades de un archivo, llama al métodogeten el recursofilescon el parámetro de ruta de accesofileIdy usa el campo de capacidadcanStartApprovalen el parámetrofields. Para obtener más información, consulta Información sobre las capacidades de los archivos.La capacidad booleana
canStartApprovalesfalseen los siguientes casos:- La configuración del administrador restringe el acceso a la función.
- Tu edición de Google Workspace no es apta.
- El archivo pertenece a un usuario ajeno a tu dominio.
- El usuario no tiene el permiso
role=writeren el archivo.
Asegúrate de compartir manualmente el archivo de destino con los revisores. Drive no lo hace automáticamente. Si un revisor no tiene acceso al archivo, la solicitud de aprobación se realizará correctamente, pero no recibirá notificaciones ni podrá ver el archivo.
Conceptos
Los siguientes conceptos clave forman la base de las aprobaciones.
Estado de aprobación
Cuando solicitas la aprobación de un documento, el proceso de aprobación garantiza que cada revisor apruebe la misma versión del contenido. Si se edita el archivo después de que un revisor aprueba la solicitud y antes de que se complete, se restablecerán las aprobaciones del revisor y los revisores deberán aprobar la nueva versión. Si se edita el contenido después de la aprobación final, aparecerá un banner en el documento que indicará que la versión actual difiere de la aprobada.
El recurso approvals incluye un objeto Status que detalla el estado de la aprobación cuando se solicita el recurso. También incluye el objeto ReviewerResponse, que detalla las respuestas a una aprobación realizada por revisores específicos. La respuesta de cada revisor se representa con el objeto Response.
Cada acción del proceso de aprobación genera notificaciones por correo electrónico que se envían al iniciador (el usuario que solicita la aprobación) y a todos los revisores. También se agrega al registro de actividad de aprobaciones.
Todos los revisores deben aprobar una aprobación. Cualquier revisor que rechace una aprobación establece el estado completado en DECLINED.
Una vez que se completa una aprobación (el estado es APPROVED, CANCELLED o DECLINED), permanece en el estado completado y el iniciador o los revisores no pueden interactuar con ella. Puedes agregar comentarios a una aprobación completada siempre y cuando no haya una aprobación existente en un archivo con el estado IN_PROGRESS.
Ciclo de vida de una aprobación
Una aprobación pasa por varios estados durante su ciclo de vida. En la figura 1, se muestran los pasos generales del ciclo de vida de una aprobación:
Inicia la aprobación. Llama a
startpara comenzar la solicitud de aprobación. Luego,statusse configura comoIN_PROGRESS.La aprobación está pendiente. Mientras la aprobación está pendiente (
statusse establece enIN_PROGRESS), tanto el iniciador como los revisores pueden interactuar con ella. Pueden agregar uncomment, el iniciador puedereassignrevisores y uno o más revisores puedenapprovela solicitud.La aprobación está en el estado completado. Una aprobación entra en el estado de completada (
statusse establece enAPPROVED,CANCELLEDoDECLINED) cuando todos los revisores aprueban la solicitud, el iniciador eligecancella solicitud o si algún revisor eligedeclinela solicitud.
Usa el parámetro fields
Si deseas especificar los campos que se devolverán en la respuesta, puedes establecer el parámetro del sistema fields con cualquier método del recurso approvals. Si omites el parámetro fields, el servidor devolverá un conjunto predeterminado de campos específicos para el método. Para devolver diferentes campos, consulta Cómo devolver campos específicos.
Cómo iniciar y administrar aprobaciones
El recurso approvals se puede usar para iniciar y administrar aprobaciones con la API de Drive. Estos métodos funcionan con cualquiera de los alcances existentes de la API de Drive de OAuth 2.0 que permiten escribir metadatos de archivos. Para obtener más información, consulta Cómo elegir los permisos de la API de Google Drive.
Iniciar aprobación
Para iniciar una nueva aprobación en un archivo, usa el método start en el recurso approvals y, luego, incluye el parámetro de ruta de acceso fileId.
El cuerpo de la solicitud consta de un campo reviewerEmails obligatorio que es un array de cadenas que contiene las direcciones de correo electrónico de los revisores asignados para revisar el archivo. Cada dirección de correo electrónico del revisor debe estar asociada a una Cuenta de Google, o la solicitud fallará.
Además, se ofrecen tres campos opcionales:
dueTime: Es la fecha límite para la aprobación en formato RFC 3339.lockFile: Es un valor booleano que indica si se debe bloquear el archivo cuando se inicia la aprobación. Esto impide que los usuarios modifiquen el archivo durante el proceso de aprobación. Cualquier usuario con el permisorole=writerpuede quitar este bloqueo.message: Es un mensaje personalizado que se envía a los revisores.
El cuerpo de la respuesta contiene una instancia del recurso approvals y el campo initiator, que es el usuario que solicitó la aprobación. La aprobación Status se establece en IN_PROGRESS.
Si hay una aprobación existente con un Status de IN_PROGRESS, el método start falla. Solo puedes iniciar una aprobación si no hay una aprobación existente en el archivo o si la aprobación existente está en estado completado (el estado es APPROVED, CANCELLED o DECLINED).
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals:start' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"reviewerEmails": [
"reviewer1@example.com",
"reviewer2@example.com"
],
"dueTime": "2026-04-01T15:01:23Z",
"lockFile": true,
"message": "Please review this file for approval."
}'
Reemplaza lo siguiente:
- FILE_ID: Es el ID del archivo en el que se encuentra la aprobación.
- ACCESS_TOKEN: Es el token de OAuth 2.0 de tu app.
Comentario sobre la aprobación
Para comentar una aprobación, usa el método comment en el recurso approvals y, luego, incluye los parámetros de ruta de acceso fileId y approvalId.
El cuerpo de la solicitud consta de un campo message obligatorio que es una cadena que contiene el comentario que deseas agregar a la aprobación.
El cuerpo de la respuesta contiene una instancia del recurso approvals. El mensaje se envía a los iniciadores y revisores de la aprobación como una notificación, y también se incluye en el registro de actividad de aprobación.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:comment' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"message": "The required comment on the approval."
}'
Reemplaza lo siguiente:
- FILE_ID: Es el ID del archivo en el que se encuentra la aprobación.
- APPROVAL_ID: ID de la aprobación.
- ACCESS_TOKEN: Es el token de OAuth 2.0 de tu app.
Cómo reasignar revisores en la aprobación
Para reasignar revisores en una aprobación, usa el método reassign en el recurso approvals y, luego, incluye los parámetros de ruta de acceso fileId y approvalId.
El método reassign permite que el iniciador de la aprobación (o un usuario con el permiso role=writer) agregue o reemplace revisores en el objeto ReviewerResponse del recurso approvals. Un usuario con el permiso role=reader solo puede reasignar una aprobación que se le haya asignado a él. Esto permite que el usuario reasigne una solicitud a otra persona que sea un revisor más capaz.
Los revisores solo se pueden reasignar mientras el campo Status es IN_PROGRESS y el campo response del revisor que se reasigna está establecido en NO_RESPONSE.
Ten en cuenta que no puedes quitar a un revisor de una aprobación. Si necesitas quitar a un revisor, debes cancelar la aprobación y comenzar una nueva.
El cuerpo de la solicitud consta de los campos opcionales addReviewers y replaceReviewers. Cada campo tiene un objeto repetido para AddReviewer y ReplaceReviewer, que contienen un solo revisor para agregar o un par de revisores para reemplazar.
También puedes agregar el campo opcional message que contiene el comentario que deseas enviar a los revisores nuevos.
El cuerpo de la respuesta contiene una instancia del recurso approvals. El mensaje se envía a los revisores nuevos como una notificación y también se incluye en el registro de actividad de aprobación.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:reassign' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"addReviewers": [
{
"addedReviewerEmail": "new_reviewer@example.com"
}
],
"replaceReviewers": [
{
"addedReviewerEmail": "replacement_reviewer@example.com",
"removedReviewerEmail": "old_reviewer@example.com"
}
],
"message": "Reassigning reviewers for this approval request."
}'
Reemplaza lo siguiente:
- FILE_ID: Es el ID del archivo en el que se encuentra la aprobación.
- APPROVAL_ID: ID de la aprobación.
- ACCESS_TOKEN: Es el token de OAuth 2.0 de tu app.
Cancelar la aprobación
Para cancelar una aprobación, usa el método cancel en el recurso approvals y, luego, incluye los parámetros de ruta fileId y approvalId.
El método cancel solo puede ser llamado por el iniciador de la aprobación (o un usuario con el permiso role=writer) mientras la aprobación Status está en IN_PROGRESS.
El cuerpo de la solicitud consta de un campo message opcional que es una cadena que contiene el mensaje para acompañar la cancelación de la aprobación.
El cuerpo de la respuesta contiene una instancia del recurso approvals. El mensaje se envía como una notificación y también se incluye en el registro de actividad de aprobación.
La aprobación Status se establece en CANCELLED y se encuentra en estado completado.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:cancel' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"message": "The optional reason for cancelling this approval request."
}'
Reemplaza lo siguiente:
- FILE_ID: Es el ID del archivo en el que se encuentra la aprobación.
- APPROVAL_ID: ID de la aprobación.
- ACCESS_TOKEN: Es el token de OAuth 2.0 de tu app.
Rechazar la aprobación
Para rechazar una aprobación, usa el método decline en el recurso approvals y, luego, incluye los parámetros de ruta de acceso fileId y approvalId.
Solo se puede llamar al método decline mientras la aprobación Status sea IN_PROGRESS.
El cuerpo de la solicitud consta de un campo message opcional que es una cadena que contiene el mensaje para acompañar el rechazo de la aprobación.
El cuerpo de la respuesta contiene una instancia del recurso approvals. El mensaje se envía como una notificación y también se incluye en el registro de actividad de aprobación.
El campo response del objeto ReviewerResponse del usuario solicitante se establece en DECLINED. Además, la aprobación Status se establece en DECLINED y se encuentra en un estado completado.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:decline' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"message": "The optional reason for declining this approval request."
}'
Reemplaza lo siguiente:
- FILE_ID: Es el ID del archivo en el que se encuentra la aprobación.
- APPROVAL_ID: ID de la aprobación.
- ACCESS_TOKEN: Es el token de OAuth 2.0 de tu app.
Aprobar la aprobación
Para aprobar una aprobación, usa el método approve en el recurso approvals y, luego, incluye los parámetros de ruta de acceso fileId y approvalId.
Solo se puede llamar al método approve mientras la aprobación Status sea IN_PROGRESS.
El cuerpo de la solicitud consta de un campo message opcional que es una cadena que contiene el mensaje para acompañar la aprobación.
El cuerpo de la respuesta contiene una instancia del recurso approvals. El mensaje se envía como una notificación y también se incluye en el registro de actividad de aprobación.
El campo response del objeto ReviewerResponse del usuario solicitante se establece en APPROVED. Además, si esta es la última respuesta obligatoria del revisor, la aprobación Status se establece en APPROVED y se encuentra en un estado completado.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID:approve' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"message": "The optional reason for approving this approval request."
}'
Reemplaza lo siguiente:
- FILE_ID: Es el ID del archivo en el que se encuentra la aprobación.
- APPROVAL_ID: ID de la aprobación.
- ACCESS_TOKEN: Es el token de OAuth 2.0 de tu app.
Cómo encontrar aprobaciones existentes
El recurso approvals también se puede usar para obtener y enumerar el estado de tus aprobaciones con la API de Drive.
Para ver las aprobaciones de un archivo, debes tener permiso para leer sus metadatos. Para obtener más información, consulta Roles y permisos.
Obtén la aprobación
Para obtener la aprobación de un archivo, usa el método get en el recurso approvals con los parámetros de ruta de acceso fileId y approvalId. Si no conoces el ID de aprobación, puedes listar las aprobaciones con el método list.
El cuerpo de la respuesta contiene una instancia del recurso approvals.
curl
curl -X GET 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals/APPROVAL_ID' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
Reemplaza lo siguiente:
- FILE_ID: Es el ID del archivo en el que se encuentra la aprobación.
- APPROVAL_ID: ID de la aprobación.
- ACCESS_TOKEN: Es el token de OAuth 2.0 de tu app.
Enumera las aprobaciones
Para enumerar las aprobaciones de un archivo, llama al método list en el recurso approvals y, luego, incluye el parámetro de ruta de acceso fileId.
El cuerpo de la respuesta consta de una lista de aprobaciones en el archivo. El campo items incluye información sobre cada aprobación en forma de un recurso approvals.
También puedes pasar los siguientes parámetros de consulta para personalizar la paginación o filtrar las aprobaciones:
pageSize: Es la cantidad máxima de aprobaciones que se mostrarán por página. Si no configuraspageSize, el servidor devuelve hasta 100 aprobaciones.pageToken: Es un token de página que se recibió de una llamada a lista anterior. Este token se usa para recuperar la página siguiente. Se debe establecer en el valor denextPageTokende una respuesta anterior.
curl
curl -X GET 'https://www.googleapis.com/drive/v3/files/FILE_ID/approvals?pageSize=10' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
Reemplaza lo siguiente:
- FILE_ID: Es el ID del archivo en el que se encuentra la aprobación.
- ACCESS_TOKEN: Es el token de OAuth 2.0 de tu app.
Temas relacionados
- Funciones y permisos
- Administra aprobaciones como administrador
- Cómo recibir aprobaciones en archivos de Google Drive