En esta guía, se explica cómo realizar solicitudes en la API de Google Drive Activity mediante el método activity.query
.
Clave de consulta
Existen 2 maneras de solicitar actividad: por elemento de Google Drive o para todo lo que se encuentra por debajo de una jerarquía de carpetas.
itemName
: El formato de esta clave es "items/ITEM_ID". Por lo general, es un archivo en Drive. Si especificas una carpeta para esta clave, se mostrará la actividad de la carpeta, como cuándo se creó o se le cambió el nombre.ancestorName
: El formato de esta clave es "items/ITEM_ID", y la respuesta incluye la actividad en todos los elementos del subárbol debajo de esta carpeta.
Cuando no se establece ninguna clave, usa de forma predeterminada el parámetro ancestorName
de "items/root" y muestra la actividad de todos los elementos de tu unidad de Drive.
Paginación
El campo pageSize
te permite solicitar una cantidad aproximada de actividades que se mostrarán en cada respuesta. El recuento real de actividades que se muestran variará, por lo que la app debe controlar cantidades arbitrarias en la respuesta.
El tamaño de las páginas es limitado. Si la app necesita muchas actividades, realiza varias solicitudes mediante la paginación en lugar de configurar un valor grande para pageSize
.
En particular, si puede haber más actividad para recuperar que la que se incluye en la respuesta, esta también contendrá un nextPageToken
. Para recuperar más resultados, repite la misma solicitud, pero agrega un campo pageToken
con el valor de nextPageToken
de la respuesta anterior.
del costo
Los objetos Action
a menudo se agrupan y se muestran dentro de un solo recurso DriveActivity
. Algunas agrupaciones de Action
se producen de forma espontánea, por ejemplo, mover un elemento a una carpeta compartida activa un cambio de permiso.
También puedes especificar un ConsolidationStrategy
(a veces llamado agregación o lotes) en la solicitud. Esto habilita otras agrupaciones de objetos Action
relacionados, como varios actores que editan un elemento o un Actor
que mueve varios archivos a una nueva carpeta de Drive.
Si bien un Action
individual tiene un Actor
y un Target
, después de la agrupación, el DriveActivity
resultante puede tener varios actores y varios objetivos.
Sin embargo, incluso después de la agrupación, siempre hay una acción "principal" que es representativa o es la más importante de todas las acciones en el recurso DriveActivity
, según la estrategia de consolidación solicitada.
Como resultado, independientemente de si la consolidación está activada o no, puede ser suficiente que muchos clientes vean solo el contenido de nivel superior de un recurso DriveActivity
(como los actores colectivos y los objetivos dentro de primaryActionDetail
) y luego ignoren las acciones detalladas en la respuesta.
Filtros
Puedes restringir las acciones que se pueden mostrar en el recurso DriveActivity
construyendo una cadena filter
en la solicitud activity.query
. Se admiten 2 campos: time
y detail.action_detail_case
.
Filtrar por hora
Para restringir acciones por intervalo de tiempo, especifica el nombre de campo time
con operadores numéricos en los valores de fecha, unidos por un "AND" opcional. Usa los milisegundos desde el 1 de enero de 1970 o el 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 acción, aplica el nombre de campo detail.action_detail_case
con el operador "has" (:
). Usa un valor único o una lista de tipos de acción permitidos entre paréntesis, separados por un espacio. Para encontrar una lista de tipos de acciones, revisa los objetos ActionDetail
.
Para excluir un tipo de acción de la respuesta, agrega un guion (-
) al comienzo de la string de filtro.
A continuación, se incluyen algunos ejemplos de tipos de acciones:
detail.action_detail_case:RENAME
detail.action_detail_case:(CREATE RESTORE)
-detail.action_detail_case:MOVE
Combinaciones
Estas condiciones de filtrado se pueden combinar dentro de una sola string filter
, como las siguientes:
detail.action_detail_case:(CREATE EDIT RESTORE) time > 1452409200000
Solicitudes de ejemplo
Solicita las 10 actividades más recientes para un elemento de Drive:
{
"itemName": "items/ITEM_ID",
"pageSize": 10
}
Solicita actividades consolidadas para cada elemento de Drive que se encuentre debajo de una carpeta principal:
{
"ancestorName": "items/ITEM_ID",
"consolidationStrategy": {
"legacy": {}
}
}
Solicita todas las acciones MOVE
y RENAME
en un elemento de Drive:
{
"itemName": "items/ITEM_ID",
"filter": "detail.action_detail_case:(MOVE RENAME)"
}
Solicitar toda la actividad desde el 1 de enero de 2018 (hora del este):
{
"ancestorName": "items/root",
"filter": "time >= \"2018-01-01T00:00:00-05:00\""
}
Solicita toda la actividad, excepto las acciones de EDIT
, durante junio de 2017 UTC:
{
"ancestorName": "items/root",
"filter": "time >= \"2018-06-01T00:00:00Z\" time < \"2018-07-01T00:00:00Z\" -detail.action_detail_case:EDIT"
}