Una propuesta de acceso es una propuesta de un solicitante a un aprobador para otorgar acceso a un destinatario a un elemento de Google Drive.
Un aprobador puede revisar todas las propuestas de acceso sin resolver en los archivos de Drive y tomar medidas al respecto. Esto significa que puedes acelerar el proceso de aprobación consultando propuestas de acceso de forma programática y, luego, resolviéndolas. También permite que un aprobador vea las propuestas de forma agregada.
La API de Google Drive proporciona el recurso accessproposals
para que puedas ver y resolver las propuestas de acceso pendientes. Los métodos del recurso accessproposals
funcionan en archivos, carpetas y los archivos dentro de una unidad compartida, pero no en la unidad compartida.
Los siguientes términos son específicos de las propuestas de acceso:
- Solicitante: Es el usuario que inicia la propuesta de acceso a un elemento de Drive.
- Destinatario: Es el usuario que recibe los permisos adicionales en un archivo si se otorga la propuesta de acceso. Muchas veces, el destinatario es el mismo que el solicitante, pero no siempre.
- Aprobador: Es el usuario responsable de aprobar (o rechazar) la propuesta de acceso. Por lo general, esto se debe a que son propietarios del documento o tienen la capacidad de compartirlo.
Enumera las propuestas de acceso pendientes
Para enumerar todas las propuestas de acceso pendientes en un elemento de Drive, llama al método list()
en el recurso accessproposals
y, luego, incluye el parámetro de ruta de acceso fileId
.
Solo los aprobadores de un archivo pueden enumerar las propuestas pendientes en él. Un aprobador es un usuario con la capacidad can_approve_access_proposals
en el archivo. Si el solicitante no es un aprobador, se devuelve una lista vacía. Para obtener más información sobre capabilities
, consulta Información sobre las capacidades de los archivos.
El cuerpo de la respuesta consta de un objeto AccessProposal
que representa una lista de propuestas de acceso no resueltas en el archivo.
El objeto AccessProposal
incluye información sobre cada propuesta, como el solicitante, el destinatario y el mensaje que agregó el solicitante. También incluye un objeto AccessProposalRoleAndView
que agrupa el role
propuesto por el solicitante con un view
. Dado que role
es un campo repetido, puede haber varios para cada propuesta. Por ejemplo, una propuesta puede tener un objeto AccessProposalRoleAndView
de role=reader
y view=published
, además de un objeto AccessProposalRoleAndView
adicional con solo el valor role=writer
. Para obtener más información, consulta Vistas.
Pasa los siguientes parámetros de consulta para personalizar la paginación de las propuestas de acceso o filtrarlas:
pageToken
: Es un token de página, recibido de una llamada a lista anterior. Proporciona este token para recuperar la página siguiente.pageSize
: Es la cantidad máxima de propuestas de acceso que se devolverán por página.
Cómo resolver propuestas de acceso pendientes
Para resolver todas las propuestas de acceso pendientes en un elemento de Drive, llama al método resolve()
en el recurso accessproposals
y, luego, incluye los parámetros de ruta de acceso fileId
y proposalId
.
El método resolve()
incluye un parámetro de consulta action
que indica la acción que se debe realizar en la propuesta. El objeto Action
hace un seguimiento del cambio de estado de la propuesta para que sepamos si se acepta o rechaza.
El método resolve()
también incluye los parámetros de consulta opcionales role
y view
. Los únicos roles admitidos son writer
, commenter
y reader
. Si no se especifica el rol, el valor predeterminado es reader
. Un parámetro de consulta opcional adicional de send_notification
te permite enviar una notificación por correo electrónico al solicitante cuando se acepta o rechaza la propuesta.
Al igual que con el método list()
, los usuarios que resuelvan la propuesta deben tener la capacidad can_approve_access_proposals
en el archivo. Para obtener más información sobre capabilities
, consulta Información sobre las capacidades de los archivos.
Las propuestas se resuelven con los mismos patrones que se enumeran en Situaciones para compartir recursos de Drive. Si hay varias propuestas para el mismo usuario, pero con diferentes roles, se aplica lo siguiente:
- Si se acepta una propuesta y se rechaza otra, se aplicará el rol aceptado al elemento de Drive.
- Si ambas propuestas se aceptan al mismo tiempo, se aplica la propuesta con el permiso más alto (por ejemplo,
role=writer
en lugar derole=reader
). Se quita la otra propuesta de acceso del elemento.
Después de enviar una propuesta al método resolve()
, se completa la acción de uso compartido. El AccessProposal
ya no se devuelve a través del método list()
. Una vez que se acepta la propuesta, el usuario debe usar la colección permissions
para actualizar los permisos de un archivo o una carpeta. Para obtener más información, consulta Actualiza permisos.