Interfejs Data Portability API korzysta z tych metod:
portabilityArchive.initiate
archiveJobs.getPortabilityArchiveState
resetAuthorization
archiveJobs.retryPortabilityArchive
portabilityArchive.initiate
Wywołujesz metodę portabilityArchive.initiate
, aby rozpocząć nowe zadanie eksportu danych.
Gdy uruchamiasz zadanie eksportu, aby utworzyć archiwum danych, musisz poprosić o odpowiednią grupę zasobów i podać token OAuth z wymaganymi zakresami dla tej grupy zasobów. Token OAuth służy do autoryzowania żądania i określania, które dane użytkownika są eksportowane.
Listę wszystkich grup zasobów obsługiwanych przez konkretną usługę znajdziesz na stronie referencyjnej schematu tej usługi.
Jeśli na przykład eksportujesz dane o aktywności związanej z wyszukiwaniem, nazywasz się InitiatePortabilityArchive(resources = ["myactivity.search"])
. Do żądania musi być dołączony token OAuth z zakresem OAuth wyszukiwania: https://www.googleapis.com/auth/dataportability.myactivity.search
.
Chociaż w jednym wywołaniu InitiatePortabilityArchive
można uwzględnić wiele grup zasobów, nie jest to zalecane. Możesz przyspieszyć przetwarzanie, wysyłając osobne żądania InitiatePortabilityArchive
do każdej grupy zasobów. Pamiętaj, że gdy żądasz wielu grup zasobów, załączony token OAuth musi mieć dołączone wszystkie odpowiednie zakresy.
Na przykład zamiast dzwonić InitiatePortabilityArchive(resources = ["myactivity.search","myactivity.youtube"])
w celu utworzenia archiwum danych dotyczących aktywności w wyszukiwarce i YouTube, wykonaj te osobne połączenia: InitiatePortabilityArchive(resources = ["myactivity.search"])
i InitiatePortabilityArchive(resources = ["myactivity.youtube"])
.
Żądanie InitiatePortabilityArchive
zwraca wartość job_id
. Ten identyfikator zadania służy do pobierania stanu archiwum danych.
archiveJobs.getPortabilityArchiveState
Metoda archiveJobs.getPortabilityArchiveState
jest wywoływana w celu pobrania bieżącego state zadania eksportu archiwum danych. Gdy wywołujesz getPortabilityArchiveState
, podajesz: job_id
: GetPortabilityArchiveState(job_id)
. Musisz też podać token OAuth z zakresami pasującymi do grup zasobów używanych w żądaniu initiate
.
Jeśli stan to COMPLETE
, zwracane są podpisane adresy URL z Cloud Storage, których możesz użyć do pobrania danych. Podpisane adresy URL tracą ważność po 6 godzinach, a dane są dostępne przez 14 dni.
W zależności od ilości danych wykonanie żądania archiwizacji może zająć kilka minut, kilka godzin, a nawet kilka dni. Stan archiwum możesz sprawdzać co 5–60 minut.
resetAuthorization
Metoda resetAuthorization
:
- Unieważnia wszystkie zakresy OAuth przyznane przez użytkownika
- Zezwala aplikacji na wywoływanie metody
InitiatePortabilityArchive
dla grupy zasobów, która była używana wcześniej - Odebranie dostępu do poprzednich archiwów danych
Wywołując resetAuthorization
, musisz podać załączony token OAuth dla użytkownika, którego autoryzację resetujesz.
archiveJobs.retryPortabilityArchive
Metoda archiveJobs.retryPortabilityArchive
jest wywoływana do ponawiania nieudanych zadań, w przypadku których metoda archiveJobs.getPortabilityArchiveState
zwróciła już state o wartości FAILED
. Może to wynikać z tymczasowej awarii backendu. W takim przypadku możesz ponowić eksport bez uzyskania nowego tokena OAuth od użytkownika. Wywołując retryPortabilityArchive
, podajesz parametr job_id
wraz z prawidłowym tokenem OAuth. Punkt końcowy spróbuje następnie utworzyć eksport dla tych samych grup zasobów, których zażądano we wstępnym żądaniu initiatePortabilityArchive
. Jeśli operacja się uda, ten punkt końcowy zwróci nowy obiekt job_id
, którego możesz używać w wywołaniach getPortabilityArchiveState
. Niepowodzenie zadania można ponowić do 3 razy.
Na przykład:
Dzwonisz do:
InitiatePortabilityArchive(resources = ["myactivity.search"])
i otrzymujeszjob_id: 0
.Po nawiązaniu połączenia z numerem
GetPortabilityArchiveState(0)
otrzymaszJobSate: FAILED
.Następnie możesz zadzwonić do firmy
RetryPortabilityArchive(0)
, aby otrzymaćjob_id: 1
zaresources = ["myactivity.search"]
.Potem możesz nadal dzwonić pod numer
GetPortabilityArchiveState(1)
.