Ten przewodnik wyjaśnia główne składniki odpowiedzi w interfejsie Google Drive Activity API, prezentując przykłady i sposób ich interpretacji.
Obiekty
- DriveActivity: to główne źródło danych zwracane przez zapytania do interfejsu Drive Activity API. Opisuje on co najmniej 1 podmiot wykonujący co najmniej 1 działanie wpływające na co najmniej 1 docel.
- Timestampi- TimeRange: te elementy opisują odpowiednio pojedynczy punkt w czasie, w którym nastąpiło działanie, lub początek i koniec okresu, w którym miało ono miejsce.
- Actor:- Actorto zwykle użytkownik końcowy. Czasami jednak zdarza się, że zdarzenie systemowe powoduje- Action, gdy administrator działa jako użytkownik lub jako on sam, albo gdy jest ono wywołane przez nierozpoznawalnego użytkownika. Wiadomość- Actorobejmuje wszystkie te przypadki.
- Target:- Targetto obiekt aktywności, np. plik, folder, dysk współdzielony lub komentarz do pliku. Pamiętaj, że wiele typów działań obsługuje więcej niż 1 rodzaj docelowego. Na przykład:- Editdotyczy zwykle plików na Dysku, ale inne działania, takie jak- Renamei- Create, mogą również dotyczyć folderów na Dysku i dysków współdzielonych. Docelowe elementy, które nie są elementami Dysku, mogą się do nich odwoływać, np. folder główny dysku lub nadrzędny dokument zawierający komentarz do pliku.
- Action: każdy zasób- DriveActivityma co najmniej jedno powiązane działanie.- Actionjest samodzielne, podobnie jak zdarzenie, ponieważ zawiera nie tylko szczegółowy typ i informacje o działaniu, ale także- Actor,- Targetoraz- Timestamplub- TimeRange. Aby uniknąć powtórzeń, element- Actionnie wypełnia pól- Target,- Actorani czasu, jeśli są one takie same jak w przypadku elementu- DriveActivity.
- ActionDetail: szczegółowe informacje o konkretnym- Action. Na przykład szczegóły działania- Movezawierają lokalizację źródłową i docelową, a- PermissionChangeokreśla, kto ma teraz dostęp do dokumentu i jakie ma uprawnienia.
Przykładowe odpowiedzi
Aby zobaczyć przykładowe odpowiedzi, zapoznaj się z poniższymi informacjami.
Użytkownik edytował plik na Dysku.
Zasób DriveActivity może zawierać tylko jedno działanie, np. edytowanie przez użytkownika jednego pliku.
"activities":[{
  "primaryActionDetail":{ "edit":{} },
  "actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID" } } } ],
  "targets":[ { "driveItem":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } } ],
  "timestamp":{ "seconds":"1536794657", "nanos":791000000 },
  "actions":[ { "detail":{ "edit":{} } } ]
}]
Dane wyjściowe zawierają te wartości:
- ACCOUNT_ID: identyfikator użytkownika. Można go używać z interfejsem People API, aby uzyskać więcej informacji.
- ITEM_ID: identyfikator elementu na Dysku.
- TITLE: tytuł elementu na Dysku.
Zwróć uwagę, że obiekt Action w tej odpowiedzi nie zawiera wartości Actor, Target ani timestamp, ponieważ są one takie same jak ogólna wartość DriveActivity.
2 użytkownicy edytowali ten sam plik w podobnym czasie
Gdy używasz ConsolidationStrategy, powiązane działania są grupowane w jedną połączoną DriveActivity. W tym przykładzie 2 podobie do siebie działania są zgrupowane: jeden typ działania Edit od 2 różnych użytkowników.
"activities":[{
  "primaryActionDetail":{ "edit":{} },
  "actors":[
    { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1" } } },
    { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2" } } }
  ],
  "targets":[
    { "driveItem":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } }
  ],
  "timeRange":{
    "startTime":{ "seconds":"1541089823", "nanos":712000000 },
    "endTime":{ "seconds":"1541089830", "nanos":830000000 }
  },
  "actions":[
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1" } } },
      "timestamp":{ "seconds":"1541089830", "nanos":830000000 }
    },
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2" } } },
      "timestamp":{ "seconds":"1541089823", "nanos":712000000 }
    }
  ]
}]
Dane wyjściowe zawierają te wartości:
- ACCOUNT_ID_1: identyfikator pierwszego użytkownika. Można go używać z interfejsem People API, aby uzyskać więcej informacji.
- ACCOUNT_ID_2: identyfikator drugiego użytkownika.
- ITEM_ID: identyfikator elementu na Dysku.
- TITLE: tytuł elementu na Dysku.
Zwróć uwagę, że obiekt Action w tej odpowiedzi nie zawiera obiektu Target, ponieważ jest on taki sam jak ogólny obiekt DriveActivity.
Przykład pokazuje też, jak aplikacje mogą używać tylko informacji podsumowanych w DriveActivity, bez sprawdzania poszczególnych działań. Odpowiedź wskazuje, że w danym przedziale czasu 2 użytkownicy edytowali dany plik.
Użytkownik przeniósł 2 pliki do nowego katalogu
W tym przykładzie ConsolidationStrategy zgrupowało 2 powiązane działania Move, ponieważ pliki zostały przeniesione z tego samego źródła do tego samego miejsca docelowego w tym samym czasie.
"activities":[{
  "primaryActionDetail":{
    "move":{
      "addedParents":[ { ... } ]
      "removedParents":[ { ... } ]
    }
  },
  "actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID" } } } ],
  "targets":[
    { "driveItem":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } },
    { "driveItem":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
  ],
  "timestamp":{ "seconds":"1541090960", "nanos":985000000 },
  "actions":[
    {
      "detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
      "target":{ "driveItem":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } }
    },
    {
      "detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
      "target":{ "driveItem":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
    }
  ]
}]
Dane wyjściowe zawierają te wartości:
- ACCOUNT_ID: identyfikator użytkownika. Można go używać z interfejsem People API, aby uzyskać więcej informacji.
- ITEM_ID_1: identyfikator pierwszego elementu na Dysku.
- ITEM_ID_2: identyfikator drugiego elementu na Dysku.
- TITLE_1: tytuł pierwszego elementu na Dysku.
- TITLE_2: tytuł drugiego elementu na Dysku.
Pamiętaj, że obiekt Action w tej odpowiedzi nie zawiera elementów Actor ani timestamp, ponieważ są one takie same jak w całościowym elemencie DriveActivity.