Dans ce guide de démarrage rapide, vous obtenez un jeton OAuth pour votre compte et vous envoyez des requêtes aux points de terminaison de l'API Data Portability à l'aide de codes temporels pour filtrer les données exportées.
Ce guide de démarrage rapide explique comment utiliser l'API Data Portability avec un accès basé sur le temps et appliquer des filtres temporels aux ressources compatibles. Pour en savoir plus sur l'accès basé sur le temps aux données utilisateur, consultez Utiliser l'accès basé sur le temps.
Objectifs
Dans ce guide de démarrage rapide, vous allez apprendre à:
- Envoyez des requêtes authentifiées récurrentes au point de terminaison
InitiatePortabilityArchivepour n'exporter que les nouvelles données depuis votre dernière exportation. - Envoyez une requête authentifiée au point de terminaison
InitiatePortabilityArchivepour n'exporter que les données des six derniers mois. - Envoyez une requête authentifiée au point de terminaison
InitiatePortabilityArchivepour n'exporter que les données d'une période spécifique.
Prérequis
Pour exécuter ce guide de démarrage rapide, vous devez:
- Vérifiez que l'API Data Portability est disponible pour les utilisateurs de votre région. Pour obtenir la liste des pays et régions compatibles, consultez les questions fréquentes sur la page "Partager une copie de vos données avec un tiers".
- Suivez les étapes de configuration de l'API Data Portability.
- Suivez la procédure pour configurer OAuth pour les applications Web JavaScript. En production, vous utilisez normalement un flux différent, comme le flux OAuth pour les applications de serveur Web.
Pour des raisons de simplicité, ce guide de démarrage rapide utilise le flux d'application Web JavaScript.
- Lorsque vous créez vos identifiants d'autorisation, notez votre ID client OAuth 2.0 et votre URI de redirection autorisé (par exemple, https://google.com). Vous en aurez besoin plus loin dans le guide de démarrage rapide.
- Lorsque vous configurez des champs d'application pour l'API Data Portability, notez que ce guide de démarrage rapide utilise le groupe de ressources
myactivity.search: https://www.googleapis.com/auth/dataportability.myactivity.search. - Lorsque vous choisissez la durée pendant laquelle vous souhaitez autoriser l'accès, sélectionnez 30 jours pour tester le filtrage temporel avec un accès basé sur le temps. (Les filtres temporels fonctionnent également avec l'accès unique).
- Obtenez un jeton OAuth.
- Obtenir l'accès à un compte appartenant ou contrôlé par votre organisation Les données d'activité de recherche de ce compte sont exportées dans ce guide de démarrage rapide.
Obtenir un jeton OAuth
Pour ce guide de démarrage rapide, vous envoyez une requête d'autorisation pour obtenir un jeton OAuth à l'aide d'une URL. Ce processus utilise le flux pour les applications Web JavaScript. Ce flux ne renvoie pas de jeton de rafraîchissement.
Pour une application de production, vous utilisez généralement un flux OAuth pour obtenir un jeton d'actualisation qui peut être utilisé pour générer des jetons d'accès à la demande. C'est le cas, par exemple, du flux des applications Web côté serveur.
Pour obtenir un jeton OAuth:
Composez une URL semblable à celle-ci.
https://accounts.google.com/o/oauth2/v2/auth? client_id=client_id& redirect_uri=redirect_uri& response_type=token& scope=https://www.googleapis.com/auth/dataportability.myactivity.search& state=developer-specified-value
Dans l'URL:
client_idcorrespond à votre ID client OAuth.redirect_uriest votre URI de redirection autorisé (par exemple, https://google.com).
Notez que le champ d'application utilisé dans l'URL de ce guide de démarrage rapide est le champ d'application de l'activité de recherche. Vous pouvez utiliser tous les champs d'application compatibles avec les filtres temporels.
Collez l'URL dans la barre d'adresse de votre navigateur, puis suivez la procédure du flux OAuth. Ce flux vous oblige à vous connecter au compte appartenant ou contrôlé par votre organisation que vous utilisez pour ce guide de démarrage rapide.
Il s'agit du compte qui accepte les champs d'application OAuth. L'écran de consentement doit se présenter comme suit (le texte de votre écran peut différer de celui de cette image):
Choisissez les champs d'application auxquels accorder l'accès et la durée de partage de l'accès aux données du compte (une fois, 30 jours ou 180 jours). Pour ce guide de démarrage rapide, choisissez 30 jours. (Les filtres temporels fonctionnent également avec l'accès unique.)
Après avoir accordé votre consentement et défini la durée d'accès, vous devriez être redirigé vers l'URI de redirection : https://google.com. L'URL générée dans la barre d'adresse inclut le jeton d'accès OAuth.
Par exemple, si le compte utilisateur accorde un accès OAuth au champ d'application
dataportability.myactivity.search, l'URL générée se présente comme suit:https://google.com/#state=developer-specified-value&access_token=your_OAuth_token&token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/dataportability.myactivity.search
Dans l'URL, your_OAuth_token est une chaîne qui représente le jeton.
Pour valider le jeton OAuth, collez cette URL dans votre navigateur:
https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=your_OAuth_token
La réponse doit se présenter comme suit:
{ "azp": <your_azp_value>, "aud": <your_aud_value>, "scope": "https://www.googleapis.com/auth/dataportability.myactivity.search", "exp": "1694210968", "expires_in": "3334", "access_type": "online" }Vous n'avez pas besoin des champs
azpouaudpour effectuer des requêtes. Le champazpreprésente leclient_iddu présentateur autorisé, et le champaudidentifie l'audience à laquelle ce jeton est destiné, qui sera égale à l'un des ID client de votre application.Rassemblez votre jeton OAuth et votre clé API. Vous en avez besoin pour effectuer des appels à l'API Data Portability.
Envoyer des requêtes aux points de terminaison
Dans ce guide de démarrage rapide, vous utiliserez des commandes curl pour appeler les points de terminaison de l'API Data Portability avec des codes temporels afin de filtrer les données exportées.Ces commandes nécessitent le jeton OAuth et la clé API que vous avez collectés précédemment.
Données de la dernière exportation
Vous pouvez utiliser des filtres temporels avec l'accès basé sur le temps pour exporter les nouvelles données depuis votre dernière exportation. Prenons l'exemple de la portée https://www.googleapis.com/auth/dataportability.myactivity.search.
Tout d'abord, vous envoyez une requête authentifiée au point de terminaison
InitiatePortabilityArchive. Cette requête lance une tâche d'archivage pour l'ensemble complet des données.Exécutez la commande curl suivante:
curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"]}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate
Dans la commande :
your_OAuth_tokenest votre jeton OAuth.
La requête
InitiatePortabilityArchiverenvoie unarchiveJobIdet unaccessType. L'ID de tâche permet de récupérer l'état de l'archive de données, et le type d'accès détermine si vous avez été autorisé à accéder aux données de manière ponctuelle ou temporelle. Pour l'accès basé sur le temps, vous verrez les éléments suivants:{ "archiveJobId": "<your_job_id_1>" "accessType": "ACCESS_TYPE_TIME_BASED" }Si vous ne fournissez pas de jeton OAuth valide, le message d'erreur suivant s'affiche:
Request had invalid authentication credentials. Expected OAuth 2.0 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.
Vous envoyez ensuite une requête authentifiée au point de terminaison
GetPortabilityArchiveStatepour récupérer l'état de la tâche d'archivage.Exécutez la commande curl suivante:
curl -H 'Authorization: Bearer your_OAuth_token' -X GET \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/archiveJobs/your_job_id_1/portabilityArchiveState
Dans la commande :
your_OAuth_tokenest votre jeton OAuth.your_job_id_1est l'ID de la tâche renvoyé par la requêteInitiatePortabilityArchive.
La réponse est basée sur l'état de la tâche. Si la tâche n'est pas terminée, la réponse indique l'état actuel. Vous devez envoyer des requêtes à ce point de terminaison régulièrement jusqu'à ce que la tâche soit terminée.
{ "state": "IN_PROGRESS" }Si la tâche est terminée, la réponse contient l'état et une ou plusieurs URL signées utilisées pour télécharger l'archive de données. Il existe également un champ
export_timequi représente l'horodatage du premier appel àInitiatePortabilityArchive.{ "state": "COMPLETE", "urls": [ "<signed_url>" ] "export_time": "<timestamp_of_first_initiate_request>" }Collez l'URL signée dans votre navigateur pour télécharger l'archive de données. Vous devez examiner le contenu de l'archive pour vous assurer qu'il contient les données d'activité de recherche attendues.
Si vous recevez un état
FAILEDdans la réponse, vous pouvez réessayer l'exportation à l'aide de la méthodeRetryPortabilityArchive.Patientez au moins 24 heures, puis envoyez une autre requête à
InitiatePortabilityArchiveà l'aide de la même commande que celle de l'étape 1, mais cette fois, utilisezexport_timecommestart_time.curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"], "start_time": timestamp_of_first_initiate_request}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate
Pour l'accès basé sur le temps, les valeurs suivantes sont renvoyées:
{ "archiveJobId": "<your_job_id_2>" "accessType": "ACCESS_TYPE_TIME_BASED" }Répétez l'étape 2 pour envoyer une requête authentifiée au point de terminaison
GetPortabilityArchiveStateafin de récupérer l'état de la tâche d'archivage (à l'aide de<your_job_id_2>).Une fois la tâche terminée, la réponse est la suivante:
{ "state": "COMPLETE", "urls": [ "signed_urls" ], "start_time": timestamp_of_first_initiate_request, "export_time": timestamp_of_second_initiate_request }Vérifiez que les données de la deuxième exportation ne contiennent que les nouvelles données générées après la première exportation.
Données des six derniers mois
Vous pouvez également utiliser des filtres temporels pour n'exporter que les données les plus récentes au lieu du corpus complet.
Supposons que la date d'aujourd'hui soit le
2024-10-01et que vous souhaitiez exporter les données des six derniers mois. Tout d'abord, vous envoyez une requête authentifiée au point de terminaisonInitiatePortabilityArchiveavec unstart_timede "2024-04-01T00:00:00Z".Exécutez la commande curl suivante:
curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"], "start_time": "2024-04-01T00:00:00Z"}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate
Pour l'accès basé sur le temps, les valeurs suivantes sont renvoyées:
{ "archiveJobId": "job_id_1" "accessType": "ACCESS_TYPE_TIME_BASED" }Envoyez une requête au point de terminaison
GetPortabilityArchiveStatepour récupérer l'état de la tâche d'archivage.Exécutez la commande curl suivante:
curl -H 'Authorization: Bearer your_OAuth_token' -X GET \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/archiveJobs/job_id_1/portabilityArchiveState
Une fois la tâche terminée, la réponse est la suivante:
{ "state": "COMPLETE", "urls": [ "signed_urls" ], "start_time": "2024-04-01T00:00:00Z", "export_time": "2024-10-01T00:00:00Z" }Notez que
start_timeest lestart_timespécifié à l'étape 1 et queexport_timeest le code temporel de l'appel àInitiatePortabilityArchiveà l'étape 1.Vérifiez que l'exportation ne contient que les données des six derniers mois.
Données d'une période spécifique
Vous pouvez utiliser des filtres temporels pour exporter des données d'une plage de dates spécifique, par exemple les données de 2023 uniquement.
Tout d'abord, vous envoyez une requête authentifiée au point de terminaison
InitiatePortabilityArchiveavec unstart_timede "2023-01-01T00:00:00Z" et unend_timede "2023-12-31T23:59:59Z".Exécutez la commande curl suivante:
curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"], "start_time": "2023-01-01T00:00:00Z", "end_time": "2023-12-31T23:59:59Z"}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate
Pour l'accès basé sur le temps, les valeurs suivantes sont renvoyées:
{ "archiveJobId": "job_id_1" "accessType": "ACCESS_TYPE_TIME_BASED" }Envoyez une requête au point de terminaison
GetPortabilityArchiveStatepour récupérer l'état de la tâche d'archivage.Exécutez la commande curl suivante:
curl -H 'Authorization: Bearer your_OAuth_token' -X GET \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/archiveJobs/job_id_1/portabilityArchiveState
Une fois la tâche terminée, la réponse est la suivante:
{ "state": "COMPLETE", "urls": [ "signed_urls" ], "start_time": "2023-01-01T00:00:00Z", "export_time": "2023-12-31T23:59:59Z" }Notez que
start_timeest lestart_timespécifié à l'étape 1 et queexport_timeest égal àend_timefourni à l'étape 1.Vérifiez que l'exportation ne contient que des données de 2023.
Champs d'application acceptés
Les champs d'application suivants sont compatibles avec les filtres temporels:
https://www.googleapis.com/auth/dataportability.myactivity.youtubehttps://www.googleapis.com/auth/dataportability.myactivity.mapshttps://www.googleapis.com/auth/dataportability.myactivity.searchhttps://www.googleapis.com/auth/dataportability.myactivity.myadcenterhttps://www.googleapis.com/auth/dataportability.myactivity.shoppinghttps://www.googleapis.com/auth/dataportability.myactivity.playhttps://www.googleapis.com/auth/dataportability.chrome.history
Attention:Les requêtes filtrées par date qui mélangent des portées compatibles et non compatibles génèrent une erreur INVALID_ARGUMENT indiquant The requested
resources do not support time filters.