Model danych interfejsu Drive Activity API

W tym przewodniku omawiamy główne komponenty odpowiedzi w interfejsie Google Drive Activity API. pokazując przykłady i sposoby ich interpretacji.

Obiekty

  • DriveActivity – to główny zasób zwracany przez zapytania do interfejsu Drive Activity API. it opisuje jednego lub więcej aktorów wykonujących co najmniej jedną czynność, które wpływają na co najmniej więcej celów.

  • Timestamp i TimeRange – te opisują odpowiednio pojedynczy punkt w czasie, w którym aktywność lub początek i koniec okresu, w którym aktywność miała miejsce w okresie obecnie się znajdujesz.

  • Actor – zwykle Actor to do użytkownika. Niekiedy jednak zdarzenie systemowe może wywołać Action, gdy administrator pełni rolę administratora użytkownika lub użytkownika albo gdy wykonuje je osoba nieidentyfikowalna. Komunikat Actor zawiera każdy z tych przypadków.

  • Target – obiektem jest Target. takiego jak plik, folder, dysk współdzielony lub komentarz do pliku. Pamiętaj, że wiele typów działań obsługuje więcej niż jeden rodzaj celu. Dla: chociaż Edit ogólnie ma zastosowanie do plików na Dysku, inne działania takie jak Rename i Create mogą być również stosowane na Dysku folderów i dysków współdzielonych. Cele, które nie są elementami na Dysku nadal może odwoływać się do elementu, na przykład do folderu głównego dysku lub do folderu nadrzędnego dokument zawierający komentarz do pliku.

  • Action – każde DriveActivity zasób ma co najmniej 1 powiązane działanie. Pole Action jest niezależne, na przykład event, ponieważ obejmuje nie tylko szczegółowy typ i informacje ale też Actor, Target i Timestamp lub TimeRange. Aby uniknąć nadmiarowości, pole Action nie jest wypełniane własną. Target, Actor lub pola czasu, gdy są takie same jak wartości ogólne. DriveActivity

  • ActionDetail – jest to konkretnego typu oraz szczegółowych informacji o Action. Na przykład plik Szczegóły działania Move mają lokalizację źródłową i docelową oraz Pole PermissionChange określa, kto i kiedy może uzyskiwać dostęp do dokumentu uprawnień.

Przykładowe odpowiedzi

Użytkownik zmodyfikował plik na Dysku:

Prosty zasób DriveActivity może zawierać tylko jedno działanie, na przykład użytkownika edytowanie jednego pliku.

"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":{} } } ]
}]

Dane wyjściowe zawierają następujące wartości:

  • ACCOUNT_ID: identyfikator użytkownika. Może być używana z People API, by uzyskać więcej informacji.
  • ITEM_ID: identyfikator elementu na Dysku.
  • TITLE: tytuł elementu na Dysku.

Pamiętaj, że pole Action w tej odpowiedzi nie zawiera tych elementów: Actor, Target, lub TimeStamp, bo są takie same jak ogólna wartość DriveActivity.

Dwóch użytkowników edytowało ten sam plik w podobnym czasie:

Gdy konsolidacja jest włączona, powiązane działania są grupowane w jedno DriveActivity W tym przykładzie są zgrupowane 2 podobne działania: jedno Edit typu działania 2 różnych użytkowników.

"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 }
    }
  ]
}]

Dane wyjściowe zawierają następujące wartości:

  • ACCOUNT_ID_1: identyfikator pierwszego użytkownika. Może być używana z People API.
  • ACCOUNT_ID_2: identyfikator drugiego użytkownika.
  • ITEM_ID: identyfikator elementu na Dysku.
  • TITLE: tytuł elementu na Dysku.

Działania w tej odpowiedzi nie obejmują pola Target, ponieważ jest to tyle samo co DriveActivity.

Ten przykład pokazuje też, jak aplikacje mogą korzystać tylko z podsumowań informacji w polu DriveActivity bez wyświetlania poszczególnych działań. Odpowiedź wskazuje, że 2 użytkowników edytowało dany plik w danym okresie.

Użytkownik przeniósł 2 pliki do nowego katalogu:

W tym przykładzie strategia konsolidacji zgrupowała 2 powiązane działania Move ponieważ pliki zostały przeniesione z tego samego źródła do tego samego miejsca docelowego w jednocześnie.

"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":{} } }
    }
  ]
}]

Dane wyjściowe zawierają następujące wartości:

  • ACCOUNT_ID: identyfikator użytkownika. Może być używana z People API, by 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.

Działania w tej odpowiedzi nie obejmują Actor ani TimeStamp bo są takie same jak ogólne DriveActivity.