Pengantar: Mengembangkan aplikasi menggunakan Data Portability API
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Dengan Data Portability API, Anda dapat membuat aplikasi yang meminta otorisasi dari pengguna untuk memindahkan salinan data dari layanan Google ke aplikasi Anda. Hal ini
memungkinkan portabilitas data dan memfasilitasi layanan pengalihan.
Sebelum dirilis, aplikasi Anda harus disetujui oleh Google.
Anda juga harus memverifikasi bahwa Data Portability API tersedia untuk pengguna di
lokasi Anda. Untuk mengetahui daftar negara dan wilayah yang didukung, lihat
Pertanyaan Umum di halaman "Membagikan salinan data Anda kepada pihak
ketiga".
Alur kerja developer
Berikut adalah langkah-langkah yang harus Anda ikuti untuk membuat aplikasi yang menggunakan
Data Portability API.
Terapkan alur izin OAuth untuk pengguna. Dalam contoh ini, pengguna
memberikan akses ke data video YouTube.
Pengguna mengklik Impor Video YouTube dan login ke Akun Google-nya.
Aplikasi meneruskan pengguna ke URL izin OAuth. Perhatikan bahwa contoh URL ini disederhanakan dan tidak memiliki beberapa parameter:
Pengguna mengklik Berikutnya di layar izin OAuth, menyetujui untuk membagikan
datanya, dan memberikan akses akun.
Pengguna memilih data yang akan dibagikan dan jumlah waktu aplikasi dapat
mengakses data tersebut (akses satu kali ke data mereka atau akses berbasis waktu selama
30 atau 180 hari), lalu mengklik Lanjutkan.
Catatan:
Hingga 90 hari sebelum token OAuth Anda berakhir, pengguna memiliki opsi
untuk memperpanjang akses Anda ke data mereka sebelum token OAuth Anda berakhir.
Tombol perpanjangan tidak akan muncul jika pengguna tidak memiliki cakupan yang akan berakhir
dalam waktu 90 hari.
Catatan: Jika pengguna ingin beralih antara akses satu kali dan
akses berbasis waktu, mereka harus melalui alur izin lagi
setelah pemberian izin yang ada dicabut. Anda dapat mencabut pemberian dengan
resetAuthorization(), atau pengguna dapat mencabutnya di halaman
koneksi.
Pengguna dialihkan ke aplikasi.
Developer mendapatkan token OAuth untuk pengguna.
Aplikasi Anda memanggil
InitiatePortabilityArchive(resources = ["myactivity.youtube"]) dengan
token OAuth terlampir yang berisi cakupan OAuth ini:
Panggilan ini memulai proses pembuatan arsip data dan merespons dengan
ID tugas dan apakah pengguna memberikan akses satu kali atau berbasis waktu.
Catatan:
Akses satu kali berarti satu ekspor per cakupan. Jika pengguna memberikan beberapa cakupan, Anda dapat memilih untuk membuat tugas terpisah untuk setiap resource yang diotorisasi oleh token.
Aplikasi Anda memanggil GetPortabilityArchiveState(job_id) dengan token OAuth
terlampir yang berisi cakupan OAuth ini:
Anda dapat memanggil metode ini beberapa kali untuk mengambil status
tugas pengarsipan. Metode ini menampilkan status tugas. Jika statusnya COMPLETE,
arsip sudah siap, dan URL Cloud Storage yang ditandatangani disediakan. Perhatikan bahwa waktu yang diperlukan untuk menyelesaikan permintaan pengarsipan dapat bervariasi dari beberapa menit hingga beberapa jam, bergantung pada ukuran data.
Download arsip data menggunakan URL yang ditandatangani.
Jika pengguna memberikan akses satu kali, Anda akan memanggil ResetAuthorization() dengan
token OAuth yang terlampir untuk mereset resource yang habis dan menghapus semua izin
OAuth.
Jika pengguna memberikan akses berbasis waktu, Anda dapat mengekspor resource setiap 24
jam hingga izin berakhir.
Cara pengguna berinteraksi dengan aplikasi Data Portability API
Diagram ini menunjukkan cara pengguna berinteraksi dengan aplikasi yang terintegrasi dengan
Data Portability API.
Pertama, pengguna akan melihat opsi untuk mengambil data mereka.
Selanjutnya, pengguna login ke Akun Google-nya.
Kemudian, pengguna mengklik Berikutnya saat diminta untuk membagikan datanya,
dan mengklik Saya mengerti saat diminta untuk menyetujui kebijakan
privasi.
Kemudian, pengguna akan melihat layar izin OAuth yang digunakan untuk mengizinkan
aplikasi mengakses data mereka. Opsi di sini cocok dengan cakupan OAuth
yang Anda konfigurasi. Pengguna memilih data yang akan dibagikan dan jumlah waktu
aplikasi dapat mengakses data tersebut (akses satu kali ke data mereka atau
akses berbasis waktu selama 30 atau 180 hari), lalu mengklik Lanjutkan.
Setelah mengizinkan akses, impor data akan dimulai. Bergantung pada ukuran data, permintaan dapat memerlukan waktu beberapa menit hingga beberapa jam.
[null,null,["Terakhir diperbarui pada 2025-07-25 UTC."],[[["\u003cp\u003eThe Data Portability API allows developers to build applications that enable users to move a copy of their data from Google services to another application, facilitating service switching.\u003c/p\u003e\n"],["\u003cp\u003eBefore releasing an application using this API, developers must obtain approval from Google and ensure the API is available in the user's region.\u003c/p\u003e\n"],["\u003cp\u003eThe developer workflow involves implementing the OAuth consent flow, initiating the data archive creation, monitoring its status, downloading the archive using provided URLs, and finally resetting authorization.\u003c/p\u003e\n"],["\u003cp\u003eUsers interact with Data Portability API applications by initiating data retrieval, signing into their Google Account, granting necessary permissions, and waiting for the data import process to complete.\u003c/p\u003e\n"],["\u003cp\u003eData Portability API features are not accessible to users under 18 years of age, resulting in an error message if they attempt to use them.\u003c/p\u003e\n"]]],[],null,["# Introduction: Develop apps using the Data Portability API\n\nThe Data Portability API lets you build applications that request authorization from a\nuser to move a copy of data from Google services into your application. This\nenables data portability and facilitates switching services.\n\nIf you are looking for information on how users share data, see [Share a copy of\nyour data with a third party](https://support.google.com/accounts/answer/14452558).\n\nPrerequisites\n-------------\n\nBefore releasing your app, it must be [approved](/data-portability/user-guide/client-verification) by Google.\n\nYou should also verify that the Data Portability API is available to users in\nyour location. For a list of supported countries and regions, see\n[Common Questions](https://support.google.com/accounts/answer/14452558) on the \"Share a copy of your data with a third\nparty\" page.\n\nDeveloper workflow\n------------------\n\nThese are the steps you follow to create an application that uses the\nData Portability API.\n\n1. Implement the OAuth consent flow for the user. In this example, the user is\n providing access to YouTube video data.\n\n 1. The user clicks **Import YouTube Videos** and signs into their Google\n Account.\n\n 2. The app forwards the user to an OAuth consent URL. Note that this\n example URL is simplified and is missing some parameters:\n\n `https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/dataportability.myactivity.youtube`\n 3. The user clicks **Next** on the OAuth consent screen, agrees to share\n their data, and provides account access.\n\n 4. The user selects what data to share and the amount of time the app can\n access that data (*one-time access* to their data or *time-based access* for\n 30 or 180 days), then clicks **Continue**.\n\n **Note**:\n Up to 90 days before your OAuth token expires, the user has the option\n of renewing your access to their data before your OAuth token expires.\n The renew button doesn't appear if the user doesn't have scopes expiring\n within 90 days.\n\n **Note** : If the user wants to switch between *one-time access* and\n *time-based access* they will need to go through the consent flow again\n after the existing grant has been revoked. You can revoke the grant with\n `resetAuthorization()`, or the user can revoke on their [connections\n page](http://myaccount.google.com/connections).\n 5. The user is redirected to the app.\n\n 6. The developer obtains an OAuth token for the user.\n\n2. Your app calls\n `InitiatePortabilityArchive(resources = [\"myactivity.youtube\"])` with\n an attached OAuth token that contains this OAuth scope:\n\n `https://www.googleapis.com/auth/dataportability.myactivity.youtube`\n\n This call starts the process of creating the data archive and responds with\n a job ID and whether the user granted one-time or time-based access.\n\n **Note** :\n One-time access means one export *per scope*. If the user grants\n multiple scopes, you may choose to create separate jobs for each of the\n resources authorized by the token.\n | **Tip:** You should initiate the portability archive within 24 hours of user authorization.\n3. Your app calls `GetPortabilityArchiveState(job_id)` with an attached OAuth\n token that contains this OAuth scope:\n\n `https://www.googleapis.com/auth/dataportability.myactivity.youtube`\n\n You can call this method multiple times to retrieve the status of the\n archive job. The method returns the job's state. If the state is `COMPLETE`,\n the archive is ready, and signed Cloud Storage URLs are provided. Note that\n the time it takes to complete the archive request can vary from minutes to\n hours depending on the size of the data.\n4. Download the data archive using the signed URLs.\n\n5. *If the user grants one-time access* , you call `ResetAuthorization()` with\n an attached OAuth token to reset exhausted resources and to remove all OAuth\n consents.\n\n6. *If the user grants time-based access*, you can export resources every 24\n hours until the consent expires.\n\nFor more information on using the Data Portability API methods, see\n[Call Data Portability API methods](/data-portability/user-guide/methods).\n\nHow users interact with a Data Portability API app\n--------------------------------------------------\n\nThis diagram shows how users interact with an app that's integrated with the\nData Portability API.\n\n1. First, the user is presented with an option to retrieve their data.\n\n2. Next, the user signs into their Google Account.\n\n3. Then, the user clicks **Next** when they're prompted to share their data,\n and they click **I understand** when they're prompted to accept the privacy\n policy.\n\n4. Then, the user is shown an OAuth consent screen that is used to allow the\n application to access their data. The options here match the OAuth scopes\n you configured. The user selects what data to share and the amount of time\n the app can access that data (*one-time access* to their data or\n *time-based access* for 30 or 180 days), then clicks **Continue**.\n\n5. After allowing access, the data import starts. Depending on the size of the\n data, the request can take several minutes to several hours to complete."]]