Memanggil metode API Portabilitas Data

Data Portability API terdiri dari metode berikut:

  • portabilityArchive.initiate
  • archiveJobs.getPortabilityArchiveState
  • resetAuthorization
  • archiveJobs.retryPortabilityArchive
  • archiveJobs.cancelPortabilityArchive
  • accessType.check

portabilityArchive.initiate

Anda memanggil metode portabilityArchive.initiate untuk memulai tugas ekspor data baru.

Saat memulai tugas ekspor untuk membuat arsip data, Anda harus meminta grup resource yang sesuai dan memberikan token OAuth dengan cakupan yang diperlukan untuk grup resource tersebut. Token OAuth digunakan untuk memberikan otorisasi kepada permintaan dan untuk menentukan data pengguna mana yang diekspor.

Untuk daftar semua grup resource yang didukung oleh layanan tertentu, lihat halaman referensi skema untuk layanan tersebut.

Misalnya, jika mengekspor data aktivitas penelusuran, Anda akan memanggil InitiatePortabilityArchive(resources = ["myactivity.search"]). Permintaan harus memiliki token OAuth yang disertakan dengan cakupan OAuth penelusuran: https://www.googleapis.com/auth/dataportability.myactivity.search.

Meskipun Anda dapat menyertakan beberapa grup resource dalam satu panggilan InitiatePortabilityArchive, sebaiknya jangan melakukannya. Anda dapat mencapai pemrosesan yang lebih cepat dengan membuat permintaan InitiatePortabilityArchive terpisah untuk setiap grup resource. Perhatikan bahwa saat Anda meminta beberapa grup resource, token OAuth yang dilampirkan harus memiliki semua cakupan yang sesuai.

Misalnya, daripada memanggil InitiatePortabilityArchive(resources = ["myactivity.search","myactivity.youtube"]) untuk membuat arsip data untuk aktivitas penelusuran dan YouTube, buat panggilan terpisah ini: InitiatePortabilityArchive(resources = ["myactivity.search"]) dan InitiatePortabilityArchive(resources = ["myactivity.youtube"]).

Permintaan InitiatePortabilityArchive akan menampilkan job_id. ID tugas ini digunakan untuk mengambil status arsip data.

archiveJobs.getPortabilityArchiveState

Metode archiveJobs.getPortabilityArchiveState dipanggil untuk mengambil status saat ini dari tugas ekspor arsip data. Saat memanggil getPortabilityArchiveState, Anda akan memberikan job_id: GetPortabilityArchiveState(job_id). Anda juga harus memberikan token OAuth dengan cakupan yang cocok dengan grup resource yang digunakan dalam permintaan initiate.

Jika statusnya COMPLETE, URL Cloud Storage yang ditandatangani akan ditampilkan dan dapat Anda gunakan untuk mendownload data. Masa berlaku URL bertanda tangan akan berakhir setelah enam jam, dan datanya tersedia selama 14 hari.

Permintaan arsip dapat memerlukan waktu beberapa menit, beberapa jam, atau bahkan beberapa hari untuk diselesaikan, bergantung pada volume data. Anda dapat memeriksa status arsip setiap lima hingga 60 menit.

resetAuthorization

Metode resetAuthorization melakukan hal berikut:

  • Mencabut semua cakupan OAuth yang diberikan pengguna
  • Memungkinkan aplikasi Anda memanggil InitiatePortabilityArchive untuk grup resource yang Anda gunakan sebelumnya
  • Menghapus akses ke arsip data sebelumnya

Saat memanggil resetAuthorization, Anda harus memberikan token OAuth yang terlampir untuk pengguna yang otorisasinya Anda reset.

archiveJobs.retryPortabilityArchive

Metode archiveJobs.retryPortabilityArchive dipanggil untuk mencoba ulang tugas yang gagal jika metode archiveJobs.getPortabilityArchiveState telah menampilkan status FAILED. Hal ini dapat terjadi karena kegagalan sementara di backend. Dalam hal ini, Anda dapat mencoba kembali ekspor tanpa mendapatkan token OAuth baru dari pengguna. Saat memanggil retryPortabilityArchive, Anda menyediakan job_id beserta token OAuth yang valid. Endpoint kemudian mencoba membuat ekspor untuk grup resource yang sama yang diminta dalam permintaan initiatePortabilityArchive awal. Jika berhasil, endpoint ini akan menampilkan job_id baru yang dapat Anda gunakan dalam panggilan ke getPortabilityArchiveState. Tugas yang gagal dapat dicoba ulang hingga tiga kali.

Contoh:

  1. Anda memanggil InitiatePortabilityArchive(resources = ["myactivity.search"]), dan Anda menerima job_id: 0.

  2. Setelah memanggil GetPortabilityArchiveState(0), Anda akan menerima JobSate: FAILED.

  3. Selanjutnya, Anda dapat memanggil RetryPortabilityArchive(0) untuk menerima job_id: 1 untuk resources = ["myactivity.search"].

  4. Kemudian, Anda dapat terus melakukan panggilan ke GetPortabilityArchiveState(1).

archiveJobs.cancelPortabilityArchive

Metode archiveJobs.cancelPortabilityArchive dipanggil untuk membatalkan tugas individual tanpa mencabut token yang ada saat Anda memiliki akses berkelanjutan ke data pengguna. Hal ini berguna jika tugas atau resource tidak lagi diperlukan dan Anda ingin mereset kuota tugas. Tugas harus berupa IN_PROGRESS dan telah dibuat dengan akses berbasis waktu agar dapat dibatalkan.

Misalnya, Anda dapat membatalkan tugas berbasis waktu yang sedang berlangsung untuk myactivity.youtube dan youtube.public_videos, lalu memulai tugas baru hanya untuk myactivity.youtube.

accessType.check

Metode accessType.check memungkinkan Anda memeriksa apakah token OAuth memberikan otorisasi akses berbasis waktu atau satu kali sebelum memulai tugas. Misalnya, Anda mungkin ingin mengekspor seluruh histori pengguna jika mereka memberikan akses satu kali, atau hanya hari terakhir jika mereka memberikan akses berbasis waktu.

Respons berisi dua kolom: daftar ID grup resource kemampuan transfer data satu kali dan berbasis waktu yang diotorisasi oleh token OAuth yang digunakan dalam permintaan. Pengguna tidak dapat mencampur jenis akses dalam pemberian token, tetapi Anda tidak harus mengasumsikan perilaku tersebut di masa mendatang.