Suscríbete a eventos de Google Drive

En esta página, se describen los eventos de Google Drive a los que tu app puede suscribirse con la API de Google Workspace Events. Después de decidir qué tipos de eventos necesitas, crea una suscripción para comenzar a recibir eventos de Drive.

Para obtener más información sobre el desarrollo de apps para Drive, consulta la descripción general de la API de Google Drive.

Eventos de Drive admitidos

Las suscripciones a Google Workspace te permiten recibir eventos sobre los siguientes tipos de cambios en Drive:

  • Un archivo es:
    • Se agregó a una carpeta o unidad compartida.
    • Se movió a una carpeta o unidad compartida.
    • Se editó o se subió una revisión nueva.
    • Se movió a la papelera o se quitó de ella.
  • Se creó o resolvió una propuesta de acceso en un archivo.

Recursos que puedes supervisar para detectar eventos

Para recibir eventos, debes especificar un recurso de Drive para supervisar, que se denomina recurso de destino de la suscripción.

La API de Google Workspace Events admite los siguientes recursos de destino para Drive:

Recurso objetivo Formato Limitaciones (si corresponde)
Archivo //drive.googleapis.com/files/FILE

donde FILE es el ID en el nombre del recurso del recurso files de la API de Drive. Puedes obtener el ID de la URL del archivo o con el método files.list.

El usuario que autoriza la suscripción debe tener permiso para acceder al archivo dentro de la suscripción en relación con el evento de suscripción.
Unidad compartida //drive.googleapis.com/drives/DRIVE

donde DRIVE es el ID en el nombre del recurso del recurso drives de la API de Drive. Puedes obtener el ID desde la URL de la unidad o con el método drives.list.

La suscripción solo recibe eventos de los elementos de la unidad compartida en la que el usuario es miembro a través de su Cuenta de Google o Cuenta de Google Workspace.

Tipos de eventos para crear suscripciones

Cuando creas una suscripción a un recurso de Drive, usas el campo eventTypes[] para especificar qué tipos de eventos deseas recibir. Los tipos de eventos se formatean según la especificación de CloudEvents, como google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Por ejemplo, para recibir eventos sobre la creación de un archivo en una carpeta o unidad compartida, especifica el archivo como el recurso de destino y el tipo de evento como google.workspace.drive.file.v3.created. Para recibir eventos sobre la creación de una propuesta de acceso en un archivo, debes especificar la propuesta de acceso como recurso de destino y el tipo de evento como google.workspace.drive.accessproposal.v3.created. Para obtener más información sobre cómo funcionan los eventos, consulta Estructura de los eventos de Google Workspace.

En la siguiente tabla, se muestran los tipos de eventos admitidos para las suscripciones a recursos de Drive:

Tipo de evento Formato Datos de recursos
Suscripciones a archivos  
Se agrega un archivo a una carpeta o unidad compartida.

google.workspace.drive.file.v3.created

file

Se mueve un archivo a una carpeta o unidad compartida.

google.workspace.drive.file.v3.moved

file

Se edita un archivo o se sube una revisión nueva.

google.workspace.drive.file.v3.contentChanged

file

Se borra un archivo.

google.workspace.drive.file.v3.deleted

file

Se envió un archivo a la papelera.

google.workspace.drive.file.v3.trashed

file

Se quita un archivo de la papelera.

google.workspace.drive.file.v3.untrashed

file

Se creó una propuesta de acceso en un archivo.

google.workspace.drive.accessproposal.v3.created

accessproposal

Se resolvió una propuesta de acceso en un archivo.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Suscripciones a unidades compartidas  
Se agrega un archivo a una carpeta o unidad compartida.

google.workspace.drive.file.v3.created

file

Se mueve un archivo a una carpeta o unidad compartida.

google.workspace.drive.file.v3.moved

file

Se edita un archivo o se sube una revisión nueva.

google.workspace.drive.file.v3.contentChanged

file

Se borra un archivo.

google.workspace.drive.file.v3.deleted

file

Se envió un archivo a la papelera.

google.workspace.drive.file.v3.trashed

file

Se quita un archivo de la papelera.

google.workspace.drive.file.v3.untrashed

file

Se creó una propuesta de acceso en un archivo.

google.workspace.drive.accessproposal.v3.created

accessproposal

Se resolvió una propuesta de acceso en un archivo.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Datos de eventos

En esta sección, se describen los datos de eventos y los ejemplos de cargas útiles para los eventos en Drive.

Cuando tu suscripción a Google Workspace recibe un evento de Drive, el campo data contiene la carga útil del evento. Esta carga útil contiene información sobre el recurso de Google Workspace que cambió. Por ejemplo, si te suscribiste a eventos de archivos, la carga útil de estos eventos contiene información sobre el recurso file que cambió.

Datos del recurso en la carga útil del evento

Cuando creas una suscripción, puedes especificar si deseas que la carga útil incluya detalles sobre el recurso o solo su nombre. Por ejemplo, si deseas recibir eventos sobre archivos en Drive, puedes especificar qué campos de un recurso files deseas recibir en la carga útil del evento.

En la siguiente tabla, se proporcionan ejemplos de cargas útiles JSON para una suscripción al recurso Drive. El ID de archivo contiene letras, números y algunos caracteres especiales estructurados como files/^[01][0-9a-zA-Z_-]+$/. Por ejemplo, files/1aaabbbAAABBB111222-_ Para cada evento que recibe la suscripción, la carga útil aparece en el campo data del evento:

Ejemplo Tipo de evento Carga útil de JSON

Un usuario agrega un archivo a una carpeta o unidad compartida.

google.workspace.drive.file.v3.created

Incluye datos de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Excluye los datos de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Un usuario mueve un archivo a una carpeta o unidad compartida.

google.workspace.drive.file.v3.moved

Incluye datos de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Excluye los datos de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Un usuario edita un archivo o se sube una revisión nueva.

google.workspace.drive.file.v3.contentChanged

Incluye datos de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Excluye los datos de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Un usuario borra un archivo.

google.workspace.drive.file.v3.deleted

Incluye datos de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Excluye los datos de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Un usuario mueve un archivo a la papelera.

google.workspace.drive.file.v3.trashed

Incluye datos de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Excluye los datos de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Un usuario restablece un archivo de la papelera.

google.workspace.drive.file.v3.untrashed

Incluye datos de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Excluye los datos de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Un usuario crea una propuesta de acceso en un archivo.

google.workspace.drive.accessproposal.v3.created

Incluye datos de recursos
{
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "63",
        "requesterEmailAddress": "application/vnd.google-apps.document",
        "requestMessage": "grant me access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
}
      
Excluye los datos de recursos
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Un usuario resuelve una propuesta de acceso en un archivo.

google.workspace.drive.accessProposal.v3.resolved

Incluye datos de recursos
{
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "63",
        "requesterEmailAddress": "application/vnd.google-apps.document",
        "requestMessage": "resolve access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
}
      
Excluye los datos de recursos
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Limitaciones

  • Cuando el campo booleano includeDescendants en DriveOptions es true, las suscripciones de Drive en unidades y carpetas compartidas siempre envían un evento, incluso si el archivo que activó el evento está anidado muchos niveles por debajo de la carpeta que se usa para la suscripción de Drive.
  • Aunque hayas creado una suscripción en una carpeta, es posible que no recibas todos los eventos dentro de la jerarquía de archivos, ya que es posible que no se le haya otorgado acceso a ellos al usuario o a la aplicación. En este caso, la suscripción permanece activa, pero no recibirás ningún evento para los recursos a los que no tengas acceso.
  • Se admiten suscripciones para eventos en todos los archivos y carpetas, pero no en la carpeta raíz de las unidades compartidas. Las suscripciones solo se admiten para los archivos y las carpetas dentro de las unidades compartidas. Los cambios que se realicen directamente en la carpeta raíz de una unidad compartida no activarán eventos.
  • El usuario que autoriza la suscripción debe tener permiso en el archivo correspondiente a los eventos a los que se suscribe.
  • La suscripción solo recibe eventos para los recursos a los que el usuario tiene acceso a través de su cuenta de Google Workspace o Cuenta de Google.