Introduction: Développer des applications à l'aide de l'API Data Portability
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
L'API Portabilité des données vous permet de créer des applications qui demandent l'autorisation d'un utilisateur pour transférer une copie des données des services Google vers votre application. Cela permet de transférer des données et de changer de service plus facilement.
Avant de pouvoir publier votre application, elle doit être approuvée par Google.
Vous devez également vérifier que l'API Data Portability est disponible pour les utilisateurs de votre région. Pour obtenir la liste des pays et régions acceptés, consultez les questions fréquentes sur la page "Partager une copie de vos données avec un tiers".
Workflow de développement
Voici la procédure à suivre pour créer une application qui utilise l'API Data Portability.
Implémentez le flux de consentement OAuth pour l'utilisateur. Dans cet exemple, l'utilisateur fournit l'accès aux données vidéo YouTube.
L'utilisateur clique sur Importer des vidéos YouTube et se connecte à son compte Google.
L'application redirige l'utilisateur vers une URL de consentement OAuth. Notez que cet exemple d'URL est simplifié et que certains paramètres sont manquants:
L'utilisateur clique sur Suivant sur l'écran de consentement OAuth, accepte de partager ses données et fournit l'accès au compte.
L'utilisateur sélectionne les données à partager et la durée pendant laquelle l'application peut y accéder (accès unique à ses données ou accès basé sur le temps pendant 30 ou 180 jours), puis clique sur Continuer.
Remarque : Jusqu'à 90 jours avant l'expiration de votre jeton OAuth, l'utilisateur peut renouveler votre accès à ses données.
Le bouton de renouvellement ne s'affiche pas si les champs d'application de l'utilisateur n'expirent pas dans les 90 jours.
Remarque: Si l'utilisateur souhaite passer de l'accès unique à l'accès basé sur le temps, il devra suivre à nouveau le parcours de consentement une fois l'autorisation existante révoquée. Vous pouvez révoquer l'autorisation avec resetAuthorization() ou l'utilisateur peut le faire sur sa page "Connexions".
L'utilisateur est redirigé vers l'application.
Le développeur obtient un jeton OAuth pour l'utilisateur.
Votre application appelle InitiatePortabilityArchive(resources = ["myactivity.youtube"]) avec un jeton OAuth associé contenant ce champ d'application OAuth:
Cet appel lance le processus de création de l'archive de données et renvoie un ID de tâche et indique si l'utilisateur a accordé un accès ponctuel ou basé sur le temps.
Remarque : L'accès unique correspond à une exportation par champ d'application. Si l'utilisateur accorde plusieurs champs d'application, vous pouvez choisir de créer des tâches distinctes pour chacune des ressources autorisées par le jeton.
Votre application appelle GetPortabilityArchiveState(job_id) avec un jeton OAuth associé qui contient ce champ d'application OAuth:
Vous pouvez appeler cette méthode plusieurs fois pour récupérer l'état de la tâche d'archivage. La méthode renvoie l'état de la tâche. Si l'état est COMPLETE, l'archive est prête et des URL Cloud Storage signées sont fournies. Notez que le temps nécessaire pour traiter la requête d'archivage peut varier de quelques minutes à plusieurs heures, en fonction de la taille des données.
Téléchargez l'archive de données à l'aide des URL signées.
Si l'utilisateur accorde un accès unique, appelez ResetAuthorization() avec un jeton OAuth associé pour réinitialiser les ressources épuisées et supprimer tous les consentements OAuth.
Si l'utilisateur accorde un accès basé sur le temps, vous pouvez exporter des ressources toutes les 24 heures jusqu'à l'expiration du consentement.
Comment les utilisateurs interagissent-ils avec une application de l'API Data Portability ?
Ce diagramme montre comment les utilisateurs interagissent avec une application intégrée à l'API Data Portability.
Tout d'abord, l'utilisateur a la possibilité de récupérer ses données.
L'utilisateur se connecte ensuite à son compte Google.
L'utilisateur clique ensuite sur Suivant lorsqu'il est invité à partager ses données, puis sur Je comprends lorsqu'il est invité à accepter les règles de confidentialité.
Un écran de consentement OAuth s'affiche ensuite pour autoriser l'application à accéder aux données de l'utilisateur. Les options ici correspondent aux champs d'application OAuth que vous avez configurés. L'utilisateur sélectionne les données à partager et la durée pendant laquelle l'application peut y accéder (accès unique à ses données ou accès basé sur le temps pendant 30 ou 180 jours), puis clique sur Continuer.
Une fois l'accès autorisé, l'importation des données commence. Selon la taille des données, la requête peut prendre de quelques minutes à plusieurs heures.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/25 (UTC).
[null,null,["Dernière mise à jour le 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."]]