Cette page décrit les événements Google Drive auxquels votre application peut s'abonner à l'aide de l'API Google Workspace Events. Une fois que vous avez déterminé les types d'événements dont vous avez besoin, créez un abonnement pour commencer à recevoir des événements de Drive.
Pour en savoir plus sur le développement d'applications pour Drive, consultez la présentation de l'API Google Drive.
Événements Drive compatibles
Les abonnements Google Workspace vous permettent de recevoir des événements concernant les types de modifications suivants dans Drive :
- Un fichier :
- ajouté à un dossier ou à un Drive partagé ;
- déplacé vers un dossier ou un Drive partagé ;
- Une version modifiée ou une nouvelle version est importée.
- Placé dans la corbeille ou supprimé de la corbeille
- Une proposition d'accès est créée ou résolue pour un fichier.
Ressources pour lesquelles vous pouvez surveiller les événements
Pour recevoir des événements, vous devez spécifier une ressource Drive à surveiller, appelée ressource cible de l'abonnement.
L'API Google Workspace Events est compatible avec les ressources cibles suivantes pour Drive :
Ressource cible | Format | Limites (le cas échéant) |
---|---|---|
Fichier | //googleapis.com/drive/v3/files/FILE
où FILE est l'ID dans le
nom de ressource de la ressource |
L'utilisateur qui autorise l'abonnement doit disposer d'une autorisation sur le fichier dans l'abonnement par rapport à l'événement d'abonnement. |
Drive partagé | //googleapis.com/drive/v3/drives/DRIVE
où DRIVE est l'ID dans le
nom de ressource de la ressource |
L'abonnement ne reçoit que les événements concernant les éléments du Drive partagé dont l'utilisateur est membre avec son compte Google Workspace ou son compte Google. |
Types d'événements pour la création d'abonnements
Lorsque vous créez un abonnement à une ressource Drive, vous utilisez le champ eventTypes[]
pour spécifier les types d'événements que vous souhaitez recevoir. Les types d'événements sont mis en forme conformément à la spécification CloudEvents, par exemple google.workspace.APPLICATION.RESOURCE.VERSION.ACTION
.
Par exemple, pour recevoir des événements concernant la création d'un fichier dans un dossier ou un Drive partagé, vous spécifiez le fichier comme ressource cible et le type d'événement comme google.workspace.drive.file.v3.created
. Pour recevoir des événements concernant la création d'une proposition d'accès à un fichier, vous devez spécifier la proposition d'accès comme ressource cible et le type d'événement comme google.workspace.drive.accessproposal.v3.created
. Pour en savoir plus sur le fonctionnement des événements, consultez Structure des événements Google Workspace.
Le tableau suivant indique les types d'événements compatibles avec les abonnements aux ressources Drive :
Type d'événement | Format | Données de ressources | ||
---|---|---|---|---|
Abonnements aux fichiers | ||||
Un fichier est ajouté à un dossier ou à un Drive partagé. |
|
|
||
Un fichier est déplacé vers un dossier ou un Drive partagé. |
|
|
||
Un fichier est modifié ou une nouvelle révision est importée. |
|
|
||
Un fichier est supprimé. |
|
|
||
Un fichier est placé dans la corbeille. |
|
|
||
Un fichier est supprimé de la corbeille. |
|
|
||
Une proposition d'accès est créée pour un fichier. |
|
|
||
Une proposition d'accès est résolue sur un fichier. |
|
|
||
Abonnements aux Drive partagés | ||||
Un fichier est ajouté à un dossier ou à un Drive partagé. |
|
|
||
Un fichier est déplacé vers un dossier ou un Drive partagé. |
|
|
||
Un fichier est modifié ou une nouvelle révision est importée. |
|
|
||
Un fichier est supprimé. |
|
|
||
Un fichier est placé dans la corbeille. |
|
|
||
Un fichier est supprimé de la corbeille. |
|
|
||
Une proposition d'accès est créée pour un fichier. |
|
|
||
Une proposition d'accès est résolue sur un fichier. |
|
|
Données d'événement
Cette section décrit les données d'événement et des exemples de charges utiles pour les événements dans Drive.
Lorsque votre abonnement Google Workspace reçoit un événement de Drive, le champ data
contient la charge utile de l'événement. Ce payload contient des informations sur la ressource Google Workspace qui a été modifiée. Par exemple, si vous vous êtes abonné aux événements de fichier, la charge utile de ces événements contient des informations sur la ressource file
qui a été modifiée.
Données de ressources dans la charge utile de l'événement
Lorsque vous créez un abonnement, vous pouvez indiquer si vous souhaitez que la charge utile inclue des informations sur la ressource ou uniquement son nom. Par exemple, si vous souhaitez recevoir des événements concernant des fichiers dans Drive, vous pouvez spécifier les champs d'une ressource files
que vous souhaitez recevoir dans la charge utile de l'événement.
Le tableau suivant fournit des exemples de charges utiles JSON pour un abonnement à la ressource Drive. L'ID de fichier contient des lettres, des chiffres et certains caractères spéciaux, et se présente sous la forme files/^[01][0-9a-zA-Z_-]+$/
. Exemple : files/1aaabbbAAABBB111222-_
. Pour chaque événement reçu par l'abonnement, la charge utile apparaît dans le champ data
de l'événement :
Exemple | Type d'événement | Charge utile JSON |
---|---|---|
Un utilisateur ajoute un fichier à un dossier ou à un Drive partagé. |
|
Inclut les données sur les ressources
{ "fileCreatedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } Exclut les données sur les ressources
{ "fileCreatedEvent": { "file": { "id": "FILE_ID" } } } |
Un utilisateur déplace un fichier vers un dossier ou un Drive partagé. |
|
Inclut les données sur les ressources
{ "fileMovedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } Exclut les données sur les ressources
{ "fileMovedEvent": { "file": { "id": "FILE_ID" } } } |
Un utilisateur modifie un fichier ou une nouvelle révision est importée. |
|
Inclut les données sur les ressources
{ "fileContentChangedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } Exclut les données sur les ressources
{ "fileContentChangedEvent": { "file": { "id": "FILE_ID" } } } |
Un utilisateur supprime un fichier. |
|
Inclut les données sur les ressources
{ "fileDeletedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } Exclut les données sur les ressources
{ "fileDeletedEvent": { "file": { "id": "FILE_ID" } } } |
Un utilisateur place un fichier dans la corbeille. |
|
Inclut les données sur les ressources
{ "fileTrashedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } Exclut les données sur les ressources
{ "fileTrashedEvent": { "file": { "id": "FILE_ID" } } } |
Un utilisateur restaure un fichier depuis la corbeille. |
|
Inclut les données sur les ressources
{ "fileUntrashedEvent": { "file": { "id": "FILE_ID", "parent": "PARENT_ID", "version": "63", "mimeType": "application/vnd.google-apps.document" } } } Exclut les données sur les ressources
{ "fileUntrashedEvent": { "file": { "id": "FILE_ID" } } } |
Un utilisateur crée une proposition d'accès à un fichier. |
|
Inclut les données sur les ressources
{ "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" } ] } ] } } Exclut les données sur les ressources
{ "accessProposalCreatedEvent": { "accessProposal": [ { "proposalId": "PROPOSAL_ID" } ] } } |
Un utilisateur résout une proposition d'accès à un fichier. |
|
Inclut les données sur les ressources
{ "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" } ] } ] } } Exclut les données sur les ressources
{ "accessProposalResolvedEvent": { "accessProposal": [ { "proposalId": "PROPOSAL_ID" } ] } } |
Limites
- Lorsque le champ booléen
includeDescendants
dansDriveOptions
est défini surtrue
, les abonnements Drive sur les Drive et dossiers partagés déclenchent toujours un événement, même si le fichier qui a déclenché l'événement est imbriqué plusieurs niveaux en dessous du dossier utilisé pour l'abonnement Drive. - Même si vous avez créé un abonnement à un dossier, il est possible que vous ne receviez pas tous les événements de la hiérarchie de fichiers, car l'utilisateur ou l'application n'y ont peut-être pas accès. Dans ce cas, l'abonnement reste actif, mais vous ne recevrez aucun événement pour les ressources auxquelles vous n'avez pas accès.
- Les abonnements sont acceptés pour les événements liés à tous les fichiers et dossiers, mais pas pour le dossier racine des Drive partagés. Les abonnements ne sont disponibles que pour les fichiers et dossiers dans les Drive partagés. Les modifications apportées directement au dossier racine d'un Drive partagé ne déclenchent pas d'événements.
- L'utilisateur qui autorise l'abonnement doit disposer d'une autorisation sur le fichier correspondant aux événements auxquels il s'abonne.
- L'abonnement ne reçoit que les événements pour les ressources auxquelles l'utilisateur a accès via son compte Google Workspace ou son compte Google.