Einführung: Anwendungen mit der Data Portability API entwickeln
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Mit der Data Portability API können Sie Anwendungen erstellen, die die Autorisierung eines Nutzers anfordern, um eine Kopie von Daten aus Google-Diensten in Ihre Anwendung zu verschieben. Dies ermöglicht die Datenübertragbarkeit und erleichtert den Wechsel von Diensten.
Bevor Sie Ihre App veröffentlichen können, muss sie von Google genehmigt werden.
Außerdem sollten Sie prüfen, ob die Data Portability API für Nutzer an Ihrem Standort verfügbar ist. Eine Liste der unterstützten Länder und Regionen finden Sie unter Häufig gestellte Fragen auf der Seite „Kopie Ihrer Daten mit Drittanbietern teilen“.
Workflow für Entwickler
So erstellen Sie eine Anwendung, die die Data Portability API verwendet:
Implementieren Sie den OAuth-Einwilligungsablauf für den Nutzer. In diesem Beispiel gewährt der Nutzer Zugriff auf YouTube-Videodaten.
Der Nutzer klickt auf YouTube-Videos importieren und meldet sich in seinem Google-Konto an.
Die App leitet den Nutzer an eine OAuth-Einwilligungs-URL weiter. Diese Beispiel-URL ist vereinfacht und enthält einige fehlende Parameter:
Der Nutzer klickt auf dem OAuth-Zustimmungsbildschirm auf Weiter, stimmt der Weitergabe seiner Daten zu und gewährt Kontozugriff.
Der Nutzer wählt aus, welche Daten freigegeben werden sollen, und wie lange die App auf diese Daten zugreifen darf (einmaliger Zugriff auf seine Daten oder zeitlich begrenzter Zugriff für 30 oder 180 Tage). Anschließend klickt er auf Weiter.
Hinweis: Bis zu 90 Tage vor Ablauf Ihres OAuth-Tokens kann der Nutzer den Zugriff auf seine Daten verlängern.
Die Schaltfläche „Verlängern“ wird nicht angezeigt, wenn der Nutzer keine Berechtigungen hat, die innerhalb von 90 Tagen ablaufen.
Hinweis: Wenn der Nutzer zwischen einmaligem Zugriff und zeitbasiertem Zugriff wechseln möchte, muss er den Einwilligungsvorgang noch einmal durchlaufen, nachdem die vorhandene Berechtigung widerrufen wurde. Sie können die Berechtigung mit resetAuthorization() widerrufen oder der Nutzer kann sie auf seiner Verbindungsseite widerrufen.
Der Nutzer wird zur App weitergeleitet.
Der Entwickler ruft ein OAuth-Token für den Nutzer ab.
Ihre App ruft InitiatePortabilityArchive(resources = ["myactivity.youtube"]) mit einem angehängten OAuth-Token auf, das diesen OAuth-Bereich enthält:
Mit diesem Aufruf wird der Prozess zum Erstellen des Datenarchivs gestartet. Als Antwort wird eine Job-ID und angegeben, ob der Nutzer einen einmaligen oder zeitbasierten Zugriff gewährt hat.
Hinweis:
Ein einmaliger Zugriff bedeutet einen Export pro Umfang. Wenn der Nutzer mehrere Bereiche gewährt, können Sie für jede der vom Token autorisierten Ressourcen separate Jobs erstellen.
Ihre App ruft GetPortabilityArchiveState(job_id) mit einem angehängten OAuth-Token auf, das diesen OAuth-Bereich enthält:
Sie können diese Methode mehrmals aufrufen, um den Status des Archivierungsjobs abzurufen. Die Methode gibt den Status des Jobs zurück. Wenn der Status COMPLETE ist, ist das Archiv bereit und es werden signierte Cloud Storage-URLs bereitgestellt. Die Dauer der Archivierungsanfrage kann je nach Größe der Daten zwischen Minuten und Stunden variieren.
Laden Sie das Datenarchiv über die signierten URLs herunter.
Wenn der Nutzer einmaligen Zugriff gewährt, rufen Sie ResetAuthorization() mit einem angehängten OAuth-Token auf, um erschöpfte Ressourcen zurückzusetzen und alle OAuth-Einwilligungen zu entfernen.
Wenn der Nutzer einen zeitbasierten Zugriff gewährt, können Sie Ressourcen alle 24 Stunden exportieren, bis die Einwilligung abläuft.
Interaktion von Nutzern mit einer Data Portability API-App
Dieses Diagramm zeigt, wie Nutzer mit einer App interagieren, die in die Data Portability API eingebunden ist.
Zuerst wird dem Nutzer die Möglichkeit zum Abrufen seiner Daten angezeigt.
Als Nächstes meldet sich der Nutzer in seinem Google-Konto an.
Anschließend klickt der Nutzer auf Weiter, wenn er aufgefordert wird, seine Daten freizugeben, und auf Verstanden, wenn er aufgefordert wird, die Datenschutzerklärung zu akzeptieren.
Anschließend wird dem Nutzer ein OAuth-Zustimmungsbildschirm angezeigt, über den die Anwendung Zugriff auf seine Daten erhält. Die Optionen hier entsprechen den von Ihnen konfigurierten OAuth-Bereichen. Der Nutzer wählt aus, welche Daten freigegeben werden sollen, und für welchen Zeitraum die App auf diese Daten zugreifen darf (einmaliger Zugriff auf seine Daten oder zeitlich begrenzter Zugriff für 30 oder 180 Tage). Anschließend klickt er auf Weiter.
Nachdem Sie den Zugriff gewährt haben, beginnt der Datenimport. Je nach Größe der Daten kann die Anfrage einige Minuten bis mehrere Stunden dauern.
[null,null,["Zuletzt aktualisiert: 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."]]