Wywoływanie metod interfejsu Data Portability API

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:

  1. Dzwonisz do: InitiatePortabilityArchive(resources = ["myactivity.search"]) i otrzymujesz job_id: 0.

  2. Po nawiązaniu połączenia z numerem GetPortabilityArchiveState(0) otrzymasz JobSate: FAILED.

  3. Następnie możesz zadzwonić do firmy RetryPortabilityArchive(0), aby otrzymać job_id: 1 za resources = ["myactivity.search"].

  4. Potem możesz nadal dzwonić pod numer GetPortabilityArchiveState(1).