Ten przewodnik wyjaśnia różnice między interfejsem Google Drive Activity API w wersji 1 i 2 oraz jak zmienić aplikację w wersji 1, aby obsługiwała interfejs API w wersji 2.
Autoryzacja
Interfejs API w wersji 1 używał tego zakresu:
https://www.googleapis.com/auth/activity
Interfejs API w wersji 2 wymaga jednego z tych zakresów:
https://www.googleapis.com/auth/drive.activity
https://www.googleapis.com/auth/drive.activity.readonly
Nazwy zasobów
W interfejsie API w wersji 1 identyfikatory obiektów, takich jak elementy i użytkownicy Dysku Google, były niewidocznymi ciągami znaków. W interfejsie API w wersji 2 te obiekty są zwykle wskazywane za pomocą nazw zasobów. Więcej informacji znajdziesz w przewodniku po projektowaniu interfejsów Cloud API.
Zwykle można je przekształcić. Na przykład elementy Dysku w interfejsie API w wersji 2 są odwoływane za pomocą nazwy zasobu items/ITEM_ID_V1
.
Żądania
Format żądania w wersji 2 jest podobny do formatu w wersji 1. W szczególności nadal możesz żądać aktywności dotyczącej pliku na Dysku lub pliku nadrzędnego na Dysku, ale musisz sformatować te parametry żądania jako nazwy zasobów, dodając do nich prefiks items/
.
„Grupowanie” zmieniło nazwę na Konsolidacja, a parametry zapytania source
i userId
zostały usunięte.
Dostępne są też nowe opcje Filtr, które umożliwiają ograniczenie typów danych o aktywności zwracanych w odpowiedzi.
Działania
W interfejsie API w wersji 1 typ aktywności i dane powiązane z tą aktywnością znajdowały się w oddzielnych polach. Jeśli na przykład pole primaryEventType
zawiera wartość move
, aplikacje zakładają, że pole move
najwyższego poziomu jest wypełnione dodanymi i usuniętymi rodzicami.
W interfejsie API w wersji 2 te pola nie są już odrębne. Wiadomość ActionDetail
ma dokładnie 1 ustawione pole. Określa on typ działania i zawiera szczegóły powiązane z tym działaniem. Na przykład ActionDetail
reprezentujący przeniesienie ustawia tylko pole move
, które zawiera listę dodanych i usuniętych elementów nadrzędnych.
Pole primaryEventType
interfejsu API w wersji 1 odpowiada mniej więcej polu primaryActionDetail
w wersji 2.
Actors
W interfejsie API w wersji 1 zwracana aktywność zawierała wartość User
, jeśli podmiot był znanym użytkownikiem, oraz opcjonalnie pole najwyższego poziomu, takie jak fromUserDeletion
w przypadkach specjalnych.
W interfejsie API v2 dostępny jest bogatszy zestaw typów Actor
, a pole user.knownUser
jest wypełniane, gdy aktor to znany użytkownik. Jeśli Twoja aplikacja potrzebuje szczegółowych informacji o użytkownikach, może je pobrać z interfejsu People API, przekazując do metody people.get
pole KnownUser
(personName
).
Cele
W interfejsie API w wersji 1 zawsze były to elementy w Drive. W interfejsie API w wersji 2 docelowymi obiektami mogą być inne typy obiektów na Dysku. Na przykład zmiany w drive mają typ docelowy Drive
. Folder główny dysku współdzielonego jest nadal zwracany (jako DriveItem
w polu root
), ale nie jest bezpośrednim celem aktywności. Podobna koncepcja dotyczy zasobu FileComment
, którego pole parent
odnosi się do elementu na Dysku zawierającego docelowy wątek komentarzy.
Aktywność skonsolidowana
W interfejsie API w wersji 1 styl odpowiedzi zmieniał się po ustawieniu strategii konsolidacji („zbiorczości”). Gdy konsolidacja była włączona, każda aktywność zawierała element singleEvents
oraz element combinedEvent
, który podsumowywał wspólną aktywność tych zdarzeń. Gdy konsolidacja była wyłączona, pole combinedEvent
zawierało pierwotne, niezbiorczone wydarzenie dla każdej aktywności. Każde z tych zdarzeń może reprezentować więcej niż 1 działanie, np. utworzenie i udostępnienie.
W interfejsie API w wersji 2 styl odpowiedzi nie zmienia się w zależności od strategii konsolidacji, ponieważ zwracany element DriveActivity
zawiera zawsze pełny zestaw wykonawców, celów i działań.