Introduzione: sviluppo di app utilizzando l'API Data Portability
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
L'API Data Portability ti consente di creare applicazioni che richiedono l'autorizzazione di un utente per spostare una copia dei dati dai servizi Google nella tua applicazione. In questo modo,
viene abilitata la portabilità dei dati e facilitato il passaggio da un servizio all'altro.
Prima di rilasciare l'app, questa deve essere approvata da Google.
Devi anche verificare che l'API Data Portability sia disponibile per gli utenti nella tua località. Per un elenco di paesi e regioni supportati, consulta le Domande frequenti nella pagina "Condividere una copia dei tuoi dati con una terza parte".
Flusso di lavoro degli sviluppatori
Di seguito sono riportati i passaggi da seguire per creare un'applicazione che utilizza l'API Data Portability.
Implementa il flusso di consenso OAuth per l'utente. In questo esempio, l'utente fornisce accesso ai dati dei video di YouTube.
L'utente fa clic su Importa video di YouTube e accede al proprio Account Google.
L'app inoltra l'utente a un URL di consenso OAuth. Tieni presente che questo URL di esempio è semplificato e mancano alcuni parametri:
L'utente fa clic su Avanti nella schermata per il consenso OAuth, accetta di condividere i suoi dati e fornisce l'accesso all'account.
L'utente seleziona i dati da condividere e il periodo di tempo per il quale l'app può accedere ai dati (accesso una tantum ai dati o accesso basato sul tempo per 30 o 180 giorni), poi fa clic su Continua.
Nota:
fino a 90 giorni prima della scadenza del token OAuth, l'utente ha la possibilità
di rinnovare il tuo accesso ai suoi dati prima della scadenza del token OAuth.
Il pulsante di rinnovo non viene visualizzato se gli ambiti dell'utente non scadono
entro 90 giorni.
Nota: se l'utente vuole passare dall'accesso una tantum all'accesso basato sul tempo, dovrà ripetere la procedura di consenso dopo la revoca della concessione esistente. Puoi revocare la concessione con resetAuthorization() oppure l'utente può farlo nella pagina dei collegamenti.
L'utente viene reindirizzato all'app.
Lo sviluppatore ottiene un token OAuth per l'utente.
La tua app chiama
InitiatePortabilityArchive(resources = ["myactivity.youtube"]) con
un token OAuth allegato che contiene questo ambito OAuth:
Questa chiamata avvia il processo di creazione dell'archivio dei dati e risponde con un ID job e l'indicazione se l'utente ha concesso l'accesso una tantum o basato sul tempo.
Nota:
per accesso una tantum si intende un'esportazione per ambito. Se l'utente concede più ambiti, puoi scegliere di creare job separati per ciascuna delle risorse autorizzate dal token.
La tua app chiama GetPortabilityArchiveState(job_id) con un token OAuth associato che contiene questo ambito OAuth:
Puoi chiamare questo metodo più volte per recuperare lo stato del job di archiviazione. Il metodo restituisce lo stato del job. Se lo stato è COMPLETE,
l'archivio è pronto e vengono forniti gli URL firmati di Cloud Storage. Tieni presente che il tempo necessario per completare la richiesta di archiviazione può variare da alcuni minuti a diverse ore, a seconda delle dimensioni dei dati.
Scarica l'archivio dei dati utilizzando gli URL firmati.
Se l'utente concede l'accesso una tantum, chiami ResetAuthorization() con un token OAuth allegato per reimpostare le risorse esaurite e rimuovere tutti i consensi OAuth.
Se l'utente concede l'accesso in base al tempo, puoi esportare le risorse ogni 24 ore fino alla scadenza del consenso.
In che modo gli utenti interagiscono con un'app API Data Portability
Questo diagramma mostra in che modo gli utenti interagiscono con un'app integrata con l'API Data Portability.
Innanzitutto, all'utente viene presentata un'opzione per recuperare i suoi dati.
Dopodiché l'utente accede al proprio Account Google.
L'utente fa clic su Avanti quando gli viene chiesto di condividere i suoi dati e su Ho capito quando gli viene chiesto di accettare le norme sulla privacy.
A questo punto, all'utente viene mostrata una schermata di consenso OAuth che viene utilizzata per consentire all'applicazione di accedere ai suoi dati. Le opzioni qui corrispondono agli ambiti OAuth
che hai configurato. L'utente seleziona i dati da condividere e il periodo di tempo per il quale l'app può accedere ai dati (accesso una tantum ai dati o accesso basato sul tempo per 30 o 180 giorni), quindi fa clic su Continua.
Dopo aver consentito l'accesso, inizia l'importazione dei dati. A seconda delle dimensioni dei dati, il completamento della richiesta può richiedere da alcuni minuti a diverse ore.
[null,null,["Ultimo aggiornamento 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."]]