Neste guia, explicamos como fazer solicitações na API Google Drive Activity usando o
método activity.query
.
Chave de consulta
Há duas maneiras de solicitar atividade: por item do Google Drive ou para tudo em uma hierarquia de pastas.
itemName
: o formato da chave é "items/ITEM_ID". Normalmente, esse é um arquivo no Drive. Se você especificar uma pasta para essa chave, ela mostrará a atividade da pasta, por exemplo, quando ela foi criada ou renomeada.ancestorName
: o formato dessa chave é "items/ITEM_ID", e a resposta inclui a atividade em todos os itens na subárvore abaixo desta pasta.
Quando nenhuma chave é definida, o padrão é usar o ancestorName
de "items/root" e mostra a atividade de todos os itens no Drive.
Paginação
O campo pageSize
permite solicitar um número aproximado de atividades a serem retornadas em cada resposta. A contagem real de atividades retornadas varia. Por isso, seu app precisa processar quantidades arbitrárias na resposta.
O tamanho das páginas é limitado. Se o app precisar de muitas atividades, faça várias
solicitações usando paginação em vez de definir um valor grande para pageSize
.
Especificamente, se houver mais atividades para buscar do que está incluída na
resposta, ela também conterá uma nextPageToken
. Para recuperar
mais resultados, repita a mesma solicitação, mas adicione um campo pageToken
com o valor
de nextPageToken
da resposta anterior.
Consolidação
Objetos Action
geralmente são agrupados e retornados em um único
recurso DriveActivity
. Alguns agrupamentos Action
ocorrem espontaneamente, como ao mover um
item para uma pasta compartilhada acionando uma mudança de permissão.
Também é possível especificar um
ConsolidationStrategy
(às vezes chamado de agregação ou lote) na solicitação. Isso permite
outros agrupamentos de objetos Action
relacionados, como vários atores editando um
item ou um Actor
movendo vários arquivos para uma nova pasta do Drive.
Enquanto uma Action
individual tem um Actor
e um Target
, após o agrupamento,
a DriveActivity
resultante pode ter vários atores e vários destinos.
No entanto, mesmo após o agrupamento, sempre há uma ação "principal" que é
representativa, ou a mais importante, de todas as ações no
recurso DriveActivity
, dependendo da estratégia de consolidação solicitada.
Como resultado, mesmo que a consolidação esteja ativada, pode ser suficiente para
muitos clientes visualizarem apenas o conteúdo de nível superior de um recurso DriveActivity
(como
os atores e destinos coletivos na primaryActionDetail
) e ignorar
as ações detalhadas na resposta.
Filtros
É possível restringir as ações que podem ser retornadas no recurso DriveActivity
criando uma string filter
na solicitação activity.query
. Há
dois campos compatíveis: time
e detail.action_detail_case
.
Filtrar por tempo
Para restringir ações por período, especifique o nome do campo time
com operadores numéricos em valores de data, unidos por um "AND" opcional. Usar milissegundos desde 1o de janeiro de 1970 ou o formato
RFC 3339, como:
time > 1452409200000 AND time <= 1492812924310
time >= "2016-01-10T01:02:03-05:00"
Filtrar por tipo
Para restringir por tipo de ação, aplique o nome do campo detail.action_detail_case
com
o operador "tem" (:
). Use um valor singular ou uma lista de tipos de ação permitidos
entre parênteses e separados por um espaço. Para encontrar uma lista de tipos
de ação, consulte os objetos ActionDetail
.
Para excluir um tipo de ação da resposta,
inclua um hífen (-
) no início da string de filtro.
Veja alguns exemplos de tipos de ação:
detail.action_detail_case:RENAME
detail.action_detail_case:(CREATE RESTORE)
-detail.action_detail_case:MOVE
Combinações
Essas condições de filtragem podem ser combinadas em uma única string filter
, como:
detail.action_detail_case:(CREATE EDIT RESTORE) time > 1452409200000
Exemplos de solicitação
Solicitar as 10 atividades mais recentes de um item do Drive:
{
"itemName": "items/ITEM_ID",
"pageSize": 10
}
Solicite atividades consolidadas para cada item do Drive abaixo de uma pasta ancestral:
{
"ancestorName": "items/ITEM_ID",
"consolidationStrategy": {
"legacy": {}
}
}
Solicitar todas as ações MOVE
e RENAME
em um item do Drive:
{
"itemName": "items/ITEM_ID",
"filter": "detail.action_detail_case:(MOVE RENAME)"
}
Solicite todas as atividades desde 1o de janeiro de 2018 EST:
{
"ancestorName": "items/root",
"filter": "time >= \"2018-01-01T00:00:00-05:00\""
}
Solicitar todas as atividades, exceto as ações EDIT
, durante o horário UTC de junho de 2017:
{
"ancestorName": "items/root",
"filter": "time >= \"2018-06-01T00:00:00Z\" time < \"2018-07-01T00:00:00Z\" -detail.action_detail_case:EDIT"
}