S'abonner aux événements Google Drive

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

FILE est l'ID dans le nom de ressource de la ressource files de l'API Drive. Vous pouvez obtenir l'ID à partir de l'URL du fichier ou à l'aide de la méthode files.list.

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

DRIVE est l'ID dans le nom de ressource de la ressource drives de l'API Drive. Vous pouvez obtenir l'ID à partir de l'URL du lecteur ou à l'aide de la méthode drives.list.

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é.

google.workspace.drive.file.v3.created

file

Un fichier est déplacé vers un dossier ou un Drive partagé.

google.workspace.drive.file.v3.moved

file

Un fichier est modifié ou une nouvelle révision est importée.

google.workspace.drive.file.v3.contentChanged

file

Un fichier est supprimé.

google.workspace.drive.file.v3.deleted

file

Un fichier est placé dans la corbeille.

google.workspace.drive.file.v3.trashed

file

Un fichier est supprimé de la corbeille.

google.workspace.drive.file.v3.untrashed

file

Une proposition d'accès est créée pour un fichier.

google.workspace.drive.accessproposal.v3.created

accessproposal

Une proposition d'accès est résolue sur un fichier.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Abonnements aux Drive partagés  
Un fichier est ajouté à un dossier ou à un Drive partagé.

google.workspace.drive.file.v3.created

file

Un fichier est déplacé vers un dossier ou un Drive partagé.

google.workspace.drive.file.v3.moved

file

Un fichier est modifié ou une nouvelle révision est importée.

google.workspace.drive.file.v3.contentChanged

file

Un fichier est supprimé.

google.workspace.drive.file.v3.deleted

file

Un fichier est placé dans la corbeille.

google.workspace.drive.file.v3.trashed

file

Un fichier est supprimé de la corbeille.

google.workspace.drive.file.v3.untrashed

file

Une proposition d'accès est créée pour un fichier.

google.workspace.drive.accessproposal.v3.created

accessproposal

Une proposition d'accès est résolue sur un fichier.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

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é.

google.workspace.drive.file.v3.created

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é.

google.workspace.drive.file.v3.moved

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.

google.workspace.drive.file.v3.contentChanged

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.

google.workspace.drive.file.v3.deleted

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.

google.workspace.drive.file.v3.trashed

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.

google.workspace.drive.file.v3.untrashed

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.

google.workspace.drive.accessproposal.v3.created

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.

google.workspace.drive.accessProposal.v3.resolved

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 dans DriveOptions est défini sur true, 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.