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. Nadal możesz żądać aktywności dotyczącej pliku na Dysku lub jego przodka, 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 powiązane z nią dane 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 rodziców.
Pole primaryEventType
interfejsu API w wersji 1 odpowiada mniej więcej polu primaryActionDetail
w wersji 2.
Podmioty
W interfejsie API w wersji 1 zwracana aktywność zawierała wartość User
, jeśli aktor 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 podmiot 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 z Dysku. W interfejsie API w wersji 2.0 celami 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 po ustawieniu strategii konsolidacji („grupowania”) zmieniał się styl odpowiedzi. 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, niezagregowane 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ń.