En esta guía, se explican los componentes principales de una respuesta en la API de Google Drive Activity, se muestran ejemplos y cómo interpretarlos.
Objetos
DriveActivity
: Este es el recurso principal que muestran las consultas a la API de Drive Activity. Describe a uno o más actores que realizan una o más acciones que afectan uno o más objetivos.Timestamp
yTimeRange
: Describen, respectivamente, un único punto en el tiempo en el que se produjo la actividad o el inicio y el final del momento en que se produjo la actividad durante un período.Actor
: Por lo general, unActor
es un usuario final. Sin embargo, a veces, un evento del sistema puede activar unaAction
cuando un administrador actúa como usuario o como él mismo, o cuando lo realiza una persona no identificable. El mensajeActor
encapsula cada uno de estos casos.Target
: UnTarget
es el objeto de una actividad, como un archivo, una carpeta, una unidad compartida o un comentario de archivo. Ten en cuenta que muchos tipos de acción admiten más de un tipo de objetivo. Por ejemplo, aunqueEdit
generalmente se aplica a archivos de Drive, otras acciones comoRename
yCreate
también se pueden aplicar a las carpetas de Drive y unidades compartidas. Los destinos que no son elementos de Drive pueden hacer referencia a uno de ellos, como la carpeta raíz de una unidad o el documento superior que contiene un comentario de archivo.Action
: Cada recursoDriveActivity
tiene una o más acciones relacionadas. UnAction
es independiente, como un evento, en el sentido de que comprende no solo el tipo detallado y la información sobre la acción, sino también unActor
, unTarget
y unTimestamp
oTimeRange
. Para evitar la redundancia, un objetoAction
no propaga sus propios campos de hora,Target
oActor
cuando son iguales a los datos generales deDriveActivity
.ActionDetail
: Este es el tipo específico y la información detallada sobre unAction
. Por ejemplo, un detalles de acciónMove
tiene una ubicación de origen y una de destino, y unPermissionChange
especifica quién puede acceder a un documento ahora y con qué privilegios.
Respuestas de ejemplo
Un usuario editó un archivo en Drive:
Un recurso DriveActivity
simple puede incluir solo una acción, como que un usuario edite un archivo.
"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":{} } } ]
}]
En esta salida, se incluyen los siguientes valores:
- ACCOUNT_ID: Es el ID del usuario. Puede usarse con la API de People para obtener más información.
- ITEM_ID: Es el ID del elemento de Drive.
- TITLE: Es el título del elemento de Drive.
Ten en cuenta que el Action
de esta respuesta no incluye Actor
, Target
ni TimeStamp
porque son iguales que el DriveActivity
general.
Dos usuarios editaron el mismo archivo en momentos similares:
Cuando se activa la consolidación, las acciones relacionadas se agrupan en una DriveActivity
. En este ejemplo, se agrupan 2 acciones similares: un tipo de acción Edit
de 2 usuarios 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 }
}
]
}]
En esta salida, se incluyen los siguientes valores:
- ACCOUNT_ID_1: Es el ID del primer usuario. Se puede usar con la API de People para obtener más información.
- ACCOUNT_ID_2: Es el ID del segundo usuario.
- ITEM_ID: Es el ID del elemento de Drive.
- TITLE: Es el título del elemento de Drive.
Ten en cuenta que las acciones en esta respuesta no incluyen el Target
porque es igual al DriveActivity
general.
En el ejemplo, también se muestra cómo las apps podrían usar solo la información de resumen en DriveActivity
, sin mirar las acciones individuales. La respuesta indica que 2 usuarios editaron un archivo determinado durante un período.
Un usuario movió 2 archivos a un directorio nuevo:
En este ejemplo, la estrategia de consolidación agrupó 2 acciones Move
relacionadas porque los archivos se movieron de la misma fuente al mismo destino al mismo tiempo.
"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":{} } }
}
]
}]
En esta salida, se incluyen los siguientes valores:
- ACCOUNT_ID: Es el ID del usuario. Puede usarse con la API de People para obtener más información.
- ITEM_ID_1: Es el ID del primer elemento de Drive.
- ITEM_ID_2: Es el ID del segundo elemento de Drive.
- TITLE_1: Es el título del primer elemento de Drive.
- TITLE_2: Es el título del segundo elemento de Drive.
Ten en cuenta que las acciones de esta respuesta no incluyen Actor
ni TimeStamp
, ya que son las mismas que las DriveActivity
generales.