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:
Anda memanggil
InitiatePortabilityArchive(resources = ["myactivity.search"])
, dan Anda menerimajob_id: 0
.Setelah memanggil
GetPortabilityArchiveState(0)
, Anda akan menerimaJobSate: FAILED
.Selanjutnya, Anda dapat memanggil
RetryPortabilityArchive(0)
untuk menerimajob_id: 1
untukresources = ["myactivity.search"]
.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.