Iscriviti agli eventi di Google Drive

Questa pagina descrive gli eventi di Google Drive a cui la tua app può iscriversi utilizzando l'API Google Workspace Events. Dopo aver deciso quali tipi di eventi ti servono, crea un abbonamento per iniziare a ricevere eventi da Drive.

Per saperne di più sullo sviluppo di app per Drive, consulta la panoramica dell'API Google Drive.

Eventi di Drive supportati

Gli abbonamenti a Google Workspace ti consentono di ricevere eventi relativi ai seguenti tipi di modifiche in Drive:

  • Un file è:
    • Aggiunto a una cartella o a un Drive condiviso.
    • Spostato in una cartella o in un Drive condiviso.
    • È stata caricata una revisione modificata o nuova.
    • Spostato nel cestino o rimosso dal cestino.
  • Una proposta di accesso viene creata o risolta su un file.

Risorse che puoi monitorare per gli eventi

Per ricevere eventi, devi specificare una risorsa Drive da monitorare, che viene chiamata risorsa di destinazione dell'abbonamento.

L'API Google Workspace Events supporta le seguenti risorse di destinazione per Drive:

Risorsa di destinazione Formato Limitazioni (se applicabile)
File //googleapis.com/drive/v3/files/FILE

dove FILE è l'ID nel nome della risorsa della risorsa files dell'API Drive. Puoi ottenere l'ID dall'URL del file o utilizzando il metodo files.list.

L'utente che autorizza l'abbonamento deve disporre dell'autorizzazione per il file all'interno dell'abbonamento rispetto all'evento di iscrizione.
Drive condiviso //googleapis.com/drive/v3/drives/DRIVE

dove DRIVE è l'ID nel nome della risorsa della risorsa drives dell'API Drive. Puoi ottenere l'ID dall'URL dell'unità o utilizzando il metodo drives.list.

L'abbonamento riceve solo eventi per gli elementi nel Drive condiviso in cui l'utente è membro tramite il proprio account Google Workspace o Account Google.

Tipi di eventi per la creazione di abbonamenti

Quando crei un abbonamento a una risorsa di Drive, utilizzi il campo eventTypes[] per specificare i tipi di eventi che vuoi ricevere. I tipi di evento sono formattati in base alla specifica CloudEvents, ad esempio google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Ad esempio, per ricevere eventi relativi alla creazione di un file in una cartella o in un Drive condiviso, specifica il file come risorsa di destinazione e il tipo di evento come google.workspace.drive.file.v3.created. Per ricevere eventi relativi alla creazione di una proposta di accesso a un file, specifica la proposta di accesso come risorsa di destinazione e il tipo di evento come google.workspace.drive.accessproposal.v3.created. Per scoprire di più su come funzionano gli eventi, consulta Struttura degli eventi di Google Workspace.

La tabella seguente mostra i tipi di eventi supportati per gli abbonamenti alle risorse di Drive:

Tipo di evento Formato Dati delle risorse
Abbonamenti ai file  
Un file viene aggiunto a una cartella o a un Drive condiviso.

google.workspace.drive.file.v3.created

file

Un file viene spostato in una cartella o in un Drive condiviso.

google.workspace.drive.file.v3.moved

file

Un file viene modificato o viene caricata una nuova revisione.

google.workspace.drive.file.v3.contentChanged

file

Un file viene eliminato.

google.workspace.drive.file.v3.deleted

file

Un file viene spostato nel cestino.

google.workspace.drive.file.v3.trashed

file

Un file viene rimosso dal cestino.

google.workspace.drive.file.v3.untrashed

file

Su un file viene creata una proposta di accesso.

google.workspace.drive.accessproposal.v3.created

accessproposal

Una proposta di accesso viene risolta su un file.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Abbonamenti ai Drive condivisi  
Un file viene aggiunto a una cartella o a un Drive condiviso.

google.workspace.drive.file.v3.created

file

Un file viene spostato in una cartella o in un Drive condiviso.

google.workspace.drive.file.v3.moved

file

Un file viene modificato o viene caricata una nuova revisione.

google.workspace.drive.file.v3.contentChanged

file

Un file viene eliminato.

google.workspace.drive.file.v3.deleted

file

Un file viene spostato nel cestino.

google.workspace.drive.file.v3.trashed

file

Un file viene rimosso dal cestino.

google.workspace.drive.file.v3.untrashed

file

Su un file viene creata una proposta di accesso.

google.workspace.drive.accessproposal.v3.created

accessproposal

Una proposta di accesso viene risolta su un file.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Dati sugli eventi

Questa sezione descrive i dati sugli eventi e i payload di esempio per gli eventi in Drive.

Quando il tuo abbonamento a Google Workspace riceve un evento da Drive, il campo data contiene il payload dell'evento. Questo payload contiene informazioni sulla risorsa Google Workspace modificata. Ad esempio, se hai eseguito la sottoscrizione agli eventi relativi ai file, il payload di questi eventi contiene informazioni sulla risorsa file che è stata modificata.

Dati delle risorse nel payload dell'evento

Quando crei un abbonamento, puoi specificare se vuoi che il payload includa i dettagli della risorsa o solo il nome. Ad esempio, se vuoi ricevere eventi relativi ai file in Drive, puoi specificare i campi di una risorsa files che vuoi ricevere nel payload dell'evento.

La seguente tabella fornisce esempi di payload JSON per un abbonamento alla risorsa Drive. L'ID file contiene lettere, numeri e alcuni caratteri speciali strutturati come files/^[01][0-9a-zA-Z_-]+$/. Ad esempio, files/1aaabbbAAABBB111222-_. Per ogni evento ricevuto dall'abbonamento, il payload viene visualizzato nel campo data dell'evento:

Esempio Tipo di evento Payload JSON

Un utente aggiunge un file a una cartella o a un Drive condiviso.

google.workspace.drive.file.v3.created

Include i dati delle risorse
{
  "fileCreatedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
Esclude i dati delle risorse
{
  "fileCreatedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

Un utente sposta un file in una cartella o in un Drive condiviso.

google.workspace.drive.file.v3.moved

Include i dati delle risorse
{
  "fileMovedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
Esclude i dati delle risorse
{
  "fileMovedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

Un utente modifica un file o viene caricata una nuova revisione.

google.workspace.drive.file.v3.contentChanged

Include i dati delle risorse
{
  "fileContentChangedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
Esclude i dati delle risorse
{
  "fileContentChangedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

Un utente elimina un file.

google.workspace.drive.file.v3.deleted

Include i dati delle risorse
{
  "fileDeletedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
Esclude i dati delle risorse
{
  "fileDeletedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

Un utente sposta un file nel cestino.

google.workspace.drive.file.v3.trashed

Include i dati delle risorse
{
  "fileTrashedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
Esclude i dati delle risorse
{
  "fileTrashedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

Un utente ripristina un file dal cestino.

google.workspace.drive.file.v3.untrashed

Include i dati delle risorse
{
  "fileUntrashedEvent": {
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
  }
}
      
Esclude i dati delle risorse
{
  "fileUntrashedEvent": {
    "file": {
      "id": "FILE_ID"
    }
  }
}
      

Un utente crea una proposta di accesso a un file.

google.workspace.drive.accessproposal.v3.created

Include i dati delle risorse
{
  "accessProposalCreatedEvent": {
    "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"
          }
        ]
      }
    ]
  }
}
      
Esclude i dati delle risorse
{
  "accessProposalCreatedEvent": {
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
  }
}
      

Un utente risolve una proposta di accesso a un file.

google.workspace.drive.accessProposal.v3.resolved

Include i dati delle risorse
{
  "accessProposalResolvedEvent": {
    "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"
          }
        ]
      }
    ]
  }
}
      
Esclude i dati delle risorse
{
  "accessProposalResolvedEvent": {
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
  }
}
      

Limitazioni

  • Quando il campo booleano includeDescendants in DriveOptions è true, gli abbonamenti a Drive su Drive condivisi e cartelle inviano sempre un evento, anche se il file che ha attivato l'evento è nidificato molti livelli sotto la cartella utilizzata per l'abbonamento a Drive.
  • Anche se hai creato un abbonamento a una cartella, potresti non ricevere tutti gli eventi all'interno della gerarchia di file perché all'utente o all'applicazione potrebbe non essere concesso l'accesso. In questo caso, l'abbonamento rimane attivo, ma non riceverai eventi per le risorse a cui non hai accesso.
  • Le iscrizioni sono supportate per gli eventi su tutti i file e le cartelle, ma non sulla cartella principale dei Drive condivisi. Gli abbonamenti sono supportati solo per i file e le cartelle all'interno dei Drive condivisi. Le modifiche apportate direttamente alla cartella principale di un Drive condiviso non attivano eventi.
  • L'utente che autorizza l'abbonamento deve disporre dell'autorizzazione per il file corrispondente agli eventi a cui si abbona.
  • L'abbonamento riceve solo eventi per le risorse a cui l'utente ha accesso tramite il proprio account Google Workspace o Account Google.