Model danych interfejsu Drive Activity API

Ten przewodnik wyjaśnia główne elementy odpowiedzi w interfejsie Google Drive Activity API, pokazując przykłady i sposób ich interpretacji.

Obiekty

  • DriveActivity – to podstawowy zasób zwracany przez zapytania do interfejsu Drive Activity API. Opisuje co najmniej 1 aktora wykonującego co najmniej 1 działanie wpływające na co najmniej 1 cel.

  • Timestamp i TimeRange – te elementy opisują odpowiednio pojedynczy punkt w czasie, w którym wystąpiła aktywność, lub początek i koniec okresu, w którym wystąpiła aktywność.

  • Actor – zazwyczaj Actor to użytkownik. Czasami jednak zdarza się, że zdarzenie systemowe powoduje Action, gdy administrator działa jako użytkownik lub jako on sam, albo gdy jest on nierozpoznawalny. Wiadomość Actor obejmuje wszystkie te przypadki.

  • Target – Target to obiekt aktywności, na przykład 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, chociaż Edit dotyczy ogólnie plików na Dysku, inne działania, takie jak Rename i Create, mogą również dotyczyć folderów i dysków współdzielonych na Dysku. Docelowe elementy, które nie są elementami Dysku, mogą się do nich odnosić, np. folder główny dysku lub nadrzędny dokument zawierający komentarz do pliku.

  • Action – każdy zasób DriveActivity ma co najmniej 1 powiązane działanie. Action jest samodzielne, podobnie jak zdarzenie, ponieważ obejmuje nie tylko szczegółowy typ i informacje o działaniu, ale także Actor, Target oraz Timestamp lub TimeRange. Aby uniknąć powielania, element Action nie wypełnia pól Target, Actor ani czasu, jeśli są one takie same jak w przypadku elementu DriveActivity.

  • ActionDetail – tutaj znajdziesz szczegółowe informacje o Action. Na przykład szczegóły działania Move mają lokalizację źródłową i docelową, a PermissionChange określa, kto ma teraz dostęp do dokumentu i jakie ma uprawnienia.

Przykładowe odpowiedzi

Użytkownik edytował plik na Dysku:

Prosty zasób DriveActivity może zawierać tylko jedno działanie, np. edytowanie przez użytkownika 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ą te wartości:

Pamiętaj, że Action w tej odpowiedzi nie obejmuje 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 konsolidacja jest włączona, powiązane działania są grupowane w jeden DriveActivity. W tym przykładzie 2 podobne działania są zgrupowane: jeden typ działania Edit od 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ą te wartości:

  • ACCOUNT_ID_1: identyfikator pierwszego użytkownika. Możesz 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.

Pamiętaj, że działania w tej odpowiedzi nie obejmują Target, ponieważ jest ono takie samo jak ogólne 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 strategia konsolidacji pogrupowała 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":[{
  "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ą te wartości:

  • ACCOUNT_ID: identyfikator użytkownika. Możesz 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 działania w tej odpowiedzi nie obejmują Actor ani TimeStamp, ponieważ są takie same jak w ogólnym DriveActivity.