Inscrever-se em eventos do Google Drive

Esta página descreve os eventos do Google Drive aos quais seu app pode se inscrever usando a API Google Workspace Events. Depois de decidir quais tipos de eventos você precisa, crie uma assinatura para começar a receber eventos do Drive.

Para saber mais sobre o desenvolvimento de apps para o Drive, consulte a visão geral da API Google Drive.

Eventos do Drive aceitos

Com as assinaturas do Google Workspace, você recebe eventos sobre os seguintes tipos de mudanças no Drive:

  • Um arquivo é:
    • Adicionado a uma pasta ou drive compartilhado.
    • Movido para uma pasta ou drive compartilhado.
    • Editado ou teve uma nova revisão enviada por upload.
    • Excluído ou removido da lixeira.
  • Uma proposta de acesso é criada ou resolvida em um arquivo.

Recursos que podem ser monitorados para eventos

Para receber eventos, especifique um recurso do Drive para monitorar, que é chamado de recurso de destino da assinatura.

A API Google Workspace Events é compatível com os seguintes recursos de destino do Drive:

Recurso de destino Formato Limitações (se aplicável)
Arquivo //drive.googleapis.com/files/FILE

em que FILE é o ID no nome do recurso do recurso files da API Drive. Você pode extrair o ID do URL do arquivo ou usando o método files.list.

O usuário que autoriza a assinatura precisa ter permissão no arquivo dentro da assinatura em relação ao evento de assinatura.
Drive compartilhado //drive.googleapis.com/drives/DRIVE

em que DRIVE é o ID no nome do recurso do recurso drives da API Drive. Você pode extrair o ID do URL do Drive ou usando o método drives.list.

A assinatura só recebe eventos de itens no drive compartilhado em que o usuário é membro pela conta do Google Workspace ou Conta do Google.

Tipos de eventos para criar assinaturas

Ao criar uma assinatura de um recurso do Drive, use o campo eventTypes[] para especificar os tipos de eventos que você quer receber. Os tipos de eventos são formatados de acordo com a especificação CloudEvents, como google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Por exemplo, para receber eventos sobre a criação de um arquivo em uma pasta ou unidade compartilhada, especifique o arquivo como o recurso de destino e o tipo de evento como google.workspace.drive.file.v3.created. Para receber eventos sobre a criação de uma proposta de acesso em um arquivo, especifique a proposta de acesso como o recurso de destino e o tipo de evento como google.workspace.drive.accessproposal.v3.created. Para saber mais sobre como os eventos funcionam, consulte Estrutura dos eventos do Google Workspace.

A tabela a seguir mostra quais tipos de eventos são compatíveis com assinaturas de recursos do Drive:

Tipo de evento Formato Dados de recursos
Inscrições em arquivos  
Um arquivo é adicionado a uma pasta ou drive compartilhado.

google.workspace.drive.file.v3.created

file

Um arquivo é movido para uma pasta ou um drive compartilhado.

google.workspace.drive.file.v3.moved

file

Um arquivo é editado ou uma nova revisão é enviada por upload.

google.workspace.drive.file.v3.contentChanged

file

Um arquivo é excluído.

google.workspace.drive.file.v3.deleted

file

Um arquivo é movido para a lixeira.

google.workspace.drive.file.v3.trashed

file

Um arquivo é removido da lixeira.

google.workspace.drive.file.v3.untrashed

file

Uma proposta de acesso é criada em um arquivo.

google.workspace.drive.accessproposal.v3.created

accessproposal

Uma proposta de acesso é resolvida em um arquivo.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Assinaturas de drives compartilhados  
Um arquivo é adicionado a uma pasta ou drive compartilhado.

google.workspace.drive.file.v3.created

file

Um arquivo é movido para uma pasta ou um drive compartilhado.

google.workspace.drive.file.v3.moved

file

Um arquivo é editado ou uma nova revisão é enviada por upload.

google.workspace.drive.file.v3.contentChanged

file

Um arquivo é excluído.

google.workspace.drive.file.v3.deleted

file

Um arquivo é movido para a lixeira.

google.workspace.drive.file.v3.trashed

file

Um arquivo é removido da lixeira.

google.workspace.drive.file.v3.untrashed

file

Uma proposta de acesso é criada em um arquivo.

google.workspace.drive.accessproposal.v3.created

accessproposal

Uma proposta de acesso é resolvida em um arquivo.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Dados do evento

Esta seção descreve os dados de eventos e exemplos de payloads para eventos no Drive.

Quando sua assinatura do Google Workspace recebe um evento do Drive, o campo data contém a carga útil do evento. Esse payload tem informações sobre o recurso do Google Workspace que mudou. Por exemplo, se você assinou eventos de arquivo, o payload desses eventos contém informações sobre o recurso file que mudou.

Dados de recursos no payload do evento

Ao criar uma assinatura, você pode especificar se quer que o payload inclua detalhes sobre o recurso ou apenas o nome dele. Por exemplo, se você quiser receber eventos sobre arquivos no Drive, especifique quais campos de um recurso files quer receber no payload do evento.

A tabela a seguir fornece exemplos de payloads JSON para uma assinatura do recurso Drive. O ID do arquivo contém letras, números e alguns caracteres especiais estruturados como files/^[01][0-9a-zA-Z_-]+$/. Por exemplo, files/1aaabbbAAABBB111222-_. Para cada evento que a assinatura recebe, o payload aparece no campo data do evento:

Exemplo Tipo de evento Payload JSON

Um usuário adiciona um arquivo a uma pasta ou drive compartilhado.

google.workspace.drive.file.v3.created

Inclui dados de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Exclui dados de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Um usuário move um arquivo para uma pasta ou um drive compartilhado.

google.workspace.drive.file.v3.moved

Inclui dados de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Exclui dados de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Um usuário edita um arquivo ou uma nova revisão é enviada por upload.

google.workspace.drive.file.v3.contentChanged

Inclui dados de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Exclui dados de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Um usuário exclui um arquivo.

google.workspace.drive.file.v3.deleted

Inclui dados de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Exclui dados de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Um usuário move um arquivo para a lixeira.

google.workspace.drive.file.v3.trashed

Inclui dados de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Exclui dados de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Um usuário restaura um arquivo da lixeira.

google.workspace.drive.file.v3.untrashed

Inclui dados de recursos
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Exclui dados de recursos
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Um usuário cria uma proposta de acesso em um arquivo.

google.workspace.drive.accessproposal.v3.created

Inclui dados 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"
          }
        ]
      }
    ]
}
      
Exclui dados de recursos
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Um usuário resolve uma proposta de acesso em um arquivo.

google.workspace.drive.accessProposal.v3.resolved

Inclui dados 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"
          }
        ]
      }
    ]
}
      
Exclui dados de recursos
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Limitações

  • Quando o campo booleano includeDescendants em DriveOptions é true, as assinaturas do Drive em drives e pastas compartilhados sempre enviam um evento, mesmo que o arquivo que acionou o evento esteja aninhado muitas camadas abaixo da pasta usada para a assinatura do Drive.
  • Mesmo que você tenha criado uma assinatura em uma pasta, talvez não receba todos os eventos na hierarquia de arquivos porque o usuário ou aplicativo não tem acesso a eles. Nesse caso, a assinatura permanece ativa, mas você não recebe eventos de recursos a que não tem acesso.
  • As assinaturas são compatíveis com eventos em todos os arquivos e pastas, mas não na pasta raiz dos drives compartilhados. As assinaturas só são compatíveis com arquivos e pastas dentro dos drives compartilhados. As mudanças feitas diretamente na pasta raiz de um drive compartilhado não acionam eventos.
  • O usuário que autoriza a inscrição precisa ter permissão no arquivo correspondente aos eventos em que se inscreveu.
  • A assinatura só recebe eventos de recursos a que o usuário tem acesso pela conta do Google Workspace ou Conta do Google.