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
InitiatePortabilityArchive
pour n'exporter que les nouvelles données depuis votre dernière exportation. - Envoyez une requête authentifiée au point de terminaison
InitiatePortabilityArchive
pour n'exporter que les données des six derniers mois. - Envoyez une requête authentifiée au point de terminaison
InitiatePortabilityArchive
pour 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_id
correspond à votre ID client OAuth.redirect_uri
est 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
azp
ouaud
pour effectuer des requêtes. Le champazp
représente leclient_id
du présentateur autorisé, et le champaud
identifie 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_token
est votre jeton OAuth.
La requête
InitiatePortabilityArchive
renvoie unarchiveJobId
et 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
GetPortabilityArchiveState
pour 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_token
est votre jeton OAuth.your_job_id_1
est 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_time
qui 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
FAILED
dans 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_time
commestart_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
GetPortabilityArchiveState
afin 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-01
et que vous souhaitiez exporter les données des six derniers mois. Tout d'abord, vous envoyez une requête authentifiée au point de terminaisonInitiatePortabilityArchive
avec unstart_time
de "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
GetPortabilityArchiveState
pour 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_time
est lestart_time
spécifié à l'étape 1 et queexport_time
est 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
InitiatePortabilityArchive
avec unstart_time
de "2023-01-01T00:00:00Z" et unend_time
de "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
GetPortabilityArchiveState
pour 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_time
est lestart_time
spécifié à l'étape 1 et queexport_time
est égal àend_time
fourni à 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.youtube
https://www.googleapis.com/auth/dataportability.myactivity.maps
https://www.googleapis.com/auth/dataportability.myactivity.search
https://www.googleapis.com/auth/dataportability.myactivity.myadcenter
https://www.googleapis.com/auth/dataportability.myactivity.shopping
https://www.googleapis.com/auth/dataportability.myactivity.play
https://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
.