Nesta página, descrevemos 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:
Uma proposta de acesso é criada ou resolvida em um arquivo.
Um comentário é criado, editado, resolvido, reaberto ou excluído em um arquivo ou em um arquivo em um drive compartilhado.
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.
- Renomeado (o título de um arquivo ou pasta foi alterado).
Uma resposta é criada, editada ou excluída em uma conversa de comentários em um arquivo ou em um arquivo em um drive compartilhado.
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 |
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 |
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 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 | ||
|---|---|---|---|---|
| Assinaturas de arquivos e drives compartilhados | ||||
| Uma proposta de acesso é criada em um arquivo. |
|
|
||
| Uma proposta de acesso é resolvida em um arquivo. |
|
|
||
| Um comentário é criado em um arquivo ou em um arquivo dentro de um drive compartilhado. |
|
|
||
| Um comentário é editado em um arquivo ou em um arquivo em um drive compartilhado. |
|
|
||
| Um comentário é resolvido em um arquivo ou em um arquivo em um drive compartilhado. |
|
|
||
| Um comentário é reaberto em um arquivo ou em um arquivo em um drive compartilhado. |
|
|
||
| Um comentário é excluído em um arquivo ou em um arquivo dentro de um drive compartilhado. |
|
|
||
| Um arquivo é adicionado a uma pasta ou drive compartilhado. |
|
|
||
| Um arquivo é movido para uma pasta ou um drive compartilhado. |
|
|
||
| Um arquivo é editado ou uma nova revisão é enviada por upload. |
|
|
||
| Um arquivo é excluído. |
|
|
||
| Um arquivo é movido para a lixeira. |
|
|
||
| Um arquivo é removido da lixeira. |
|
|
||
| Um arquivo é renomeado. |
|
|
||
| Uma resposta é criada em uma conversa de comentários em um arquivo ou em um arquivo em um drive compartilhado. |
|
|
||
| Uma resposta é editada em uma conversa de comentários em um arquivo ou em um arquivo em um drive compartilhado. |
|
|
||
| Uma resposta é excluída de uma conversa em um arquivo ou em um arquivo dentro de um drive compartilhado. |
|
|
||
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ê se inscreveu para receber eventos de arquivo, o payload desses eventos contém informações sobre o recurso files 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 cria uma proposta de acesso em um arquivo. |
|
Inclui dados de recursos
{
"accessProposal": [
{
"file_id": "FILE_ID",
"proposalId": "PROPOSAL_ID",
"recipientEmailAddress": "alex@altostrat.com",
"requesterEmailAddress": "kai@cymbalgroup.com",
"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. |
|
Inclui dados de recursos
{
"accessProposal": [
{
"file_id": "FILE_ID",
"proposalId": "PROPOSAL_ID",
"recipientEmailAddress": "alex@altostrat.com",
"requesterEmailAddress": "kai@cymbalgroup.com",
"requestMessage": "resolve access to this file",
"rolesAndViews": [
{
"role": "writer",
"view": "published"
}
]
}
]
}
Exclui dados de recursos
{
"accessProposal": [
{
"proposalId": "PROPOSAL_ID"
}
]
}
|
Um usuário cria um comentário em um arquivo. |
|
Inclui dados de recursos
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Exclui dados de recursos
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Um usuário edita um comentário em um arquivo. |
|
Inclui dados de recursos
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Exclui dados de recursos
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Um usuário resolve um comentário em um arquivo. |
|
Inclui dados de recursos
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Exclui dados de recursos
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Um usuário reabre um comentário em um arquivo. |
|
Inclui dados de recursos
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Exclui dados de recursos
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Um usuário exclui um comentário em um arquivo. |
|
Inclui dados de recursos
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Exclui dados de recursos
{
"comment": {
"id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Um usuário adiciona um arquivo a uma pasta ou drive compartilhado. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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 renomeia um arquivo ou uma pasta. |
|
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 resposta em uma conversa de comentários. |
|
Inclui dados de recursos
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Exclui dados de recursos
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Um usuário edita uma resposta em uma conversa. |
|
Inclui dados de recursos
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Exclui dados de recursos
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Um usuário exclui uma resposta em uma conversa. |
|
Inclui dados de recursos
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID",
"mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
"assignee_email_address": "yuri@altostrat.com"
}
}
Exclui dados de recursos
{
"reply": {
"id": "REPLY_ID",
"comment_id": "COMMENT_ID",
"file_id": "FILE_ID"
}
}
|
Limitações
- Quando o campo booleano
includeDescendantsemDriveOptionsé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.