Modelo de dados da API Drive Activity

Este guia explica os principais componentes de uma resposta na API Google Drive Activity, mostrando exemplos e como interpretá-los.

Objetos

  • DriveActivity: é o principal recurso retornado pelas consultas à API Drive Activity. Ela descreve um ou mais atores realizando uma ou mais ações que afetam um ou mais destinos.

  • Timestamp e TimeRange: descrevem, respectivamente, um único ponto no tempo em que a atividade ocorreu ou o início e fim de quando a atividade ocorreu durante um período.

  • Actor: normalmente, um Actor é um usuário final. No entanto, às vezes, um evento do sistema pode acionar uma Action quando um administrador está atuando como um usuário ou como ele mesmo, ou quando executado por uma pessoa não identificável. A mensagem Actor encapsula cada um desses casos.

  • Target: um Target é o objeto de uma atividade, como um arquivo, uma pasta, um drive compartilhado ou um comentário em um arquivo. Muitos tipos de ação são compatíveis com mais de um tipo de destino. Por exemplo, embora Edit geralmente seja aplicável a arquivos do Drive, outras ações como Rename e Create também podem ser aplicadas a pastas e drives compartilhados do Drive. Os destinos que não são itens do Drive ainda podem se referir a um item, como a pasta raiz de um drive ou o documento pai que contém um comentário em um arquivo.

  • Action: cada recurso DriveActivity tem uma ou mais ações relacionadas. Um Action é autossuficiente, como um evento, na medida em que compreende não apenas o tipo e as informações detalhadas sobre a ação, mas também um Actor, um Target e um Timestamp ou TimeRange. Para evitar redundância, uma Action não preenche os próprios campos Target, Actor ou de hora quando eles são iguais ao DriveActivity geral.

  • ActionDetail: é o tipo específico e as informações detalhadas sobre uma Action. Por exemplo, um detalhe da ação Move tem um local de origem e um de destino, e um PermissionChange especifica quem agora pode acessar um documento e com quais privilégios.

Exemplos de respostas

Um usuário editou um arquivo no Drive:

Um recurso DriveActivity simples pode incluir apenas uma ação, como um usuário editando um arquivo.

"activities":[{
  "primary_action_detail":{ "edit":{} },
  "actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
  "targets":[ { "drive_item":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } } ],
  "timestamp":{ "seconds":"1536794657", "nanos":791000000 },
  "actions":[ { "detail":{ "edit":{} } } ]
}]

Esta saída inclui os seguintes valores:

  • ACCOUNT_ID: o ID do usuário. Ele pode ser usado com a API People para mais informações.
  • ITEM_ID: o ID do item do Drive.
  • TITLE: o título do item do Drive.

Observe que o Action nessa resposta não inclui Actor, Target ou TimeStamp porque eles são iguais ao DriveActivity geral.

Dois usuários editaram o mesmo arquivo em momentos semelhantes:

Quando a consolidação está ativada, as ações relacionadas são agrupadas em um DriveActivity. Neste exemplo, duas ações semelhantes são agrupadas: um tipo de ação Edit de dois usuários diferentes.

"activities":[{
  "primary_action_detail":{ "edit":{} },
  "actors":[
    { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
    { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_2" } } }
  ],
  "targets":[
    { "drive_item":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } }
  ],
  "time_range":{
    "start_time":{ "seconds":"1541089823", "nanos":712000000 },
    "end_time":{ "seconds":"1541089830", "nanos":830000000 }
  },
  "actions":[
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
      "timestamp":{ "seconds":"1541089830", "nanos":830000000 }
    },
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_2" } } },
      "timestamp":{ "seconds":"1541089823", "nanos":712000000 }
    }
  ]
}]

Esta saída inclui os seguintes valores:

  • ACCOUNT_ID_1: o ID do primeiro usuário. Ela pode ser usada com a API People para mais informações.
  • ACCOUNT_ID_2: o ID do segundo usuário.
  • ITEM_ID: o ID do item do Drive.
  • TITLE: o título do item do Drive.

As ações nessa resposta não incluem a Target porque ela é a mesma que a DriveActivity geral.

O exemplo também ilustra como os apps podem usar apenas as informações resumidas em DriveActivity, sem analisar as ações individuais. A resposta indica que dois usuários editaram um determinado arquivo em um período.

Um usuário moveu dois arquivos para um novo diretório:

Nesse exemplo, a estratégia de consolidação agrupou duas ações Move relacionadas porque os arquivos foram movidos da mesma origem para o mesmo destino ao mesmo tempo.

"activities":[{
  "primary_action_detail":{
    "move":{
      "added_parents":[ { ... } ]
      "removed_parents":[ { ... } ]
    }
  },
  "actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
  "targets":[
    { "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } },
    { "drive_item":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
  ],
  "timestamp":{ "seconds":"1541090960", "nanos":985000000 },
  "actions":[
    {
      "detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
      "target":{ "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } }
    },
    {
      "detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
      "target":{ "drive_item":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
    }
  ]
}]

Esta saída inclui os seguintes valores:

  • ACCOUNT_ID: o ID do usuário. Ele pode ser usado com a API People para mais informações.
  • ITEM_ID_1: o ID do primeiro item do Drive.
  • ITEM_ID_2: o ID do segundo item do Drive.
  • TITLE_1: o título do primeiro item do Drive.
  • TITLE_2: o título do segundo item do Drive.

Observe que as ações nessa resposta não incluem Actor ou TimeStamp porque são iguais à DriveActivity geral.