L'API Data Portability comprend les méthodes suivantes:
portabilityArchive.initiate
archiveJobs.getPortabilityArchiveState
resetAuthorization
archiveJobs.retryPortabilityArchive
archiveJobs.cancelPortabilityArchive
accessType.check
portabilityArchive.initiate
Vous appelez la méthode portabilityArchive.initiate
pour démarrer une nouvelle tâche d'exportation de données.
Lorsque vous lancez une tâche d'exportation pour créer une archive de données, vous devez demander le groupe de ressources approprié et fournir un jeton OAuth avec les champs d'application requis pour ce groupe de ressources. Le jeton OAuth permet d'autoriser la requête et de déterminer quelles données utilisateur sont exportées.
Pour obtenir la liste de tous les groupes de ressources compatibles avec un service particulier, consultez la page de référence du schéma de ce service.
Par exemple, si vous exportez des données d'activité de recherche, vous appelez InitiatePortabilityArchive(resources = ["myactivity.search"])
. La requête doit comporter un jeton OAuth associé au champ d'application OAuth de recherche : https://www.googleapis.com/auth/dataportability.myactivity.search
.
Bien qu'il soit possible d'inclure plusieurs groupes de ressources dans un seul appel InitiatePortabilityArchive
, nous vous déconseillons de le faire. Vous pouvez accélérer le traitement en envoyant des requêtes InitiatePortabilityArchive
distinctes pour chaque groupe de ressources. Notez que lorsque vous demandez plusieurs groupes de ressources, tous les champs d'application appropriés doivent être associés au jeton OAuth.
Par exemple, au lieu d'appeler InitiatePortabilityArchive(resources = ["myactivity.search","myactivity.youtube"])
pour créer une archive de données pour la recherche et l'activité YouTube, effectuez ces appels distincts : InitiatePortabilityArchive(resources = ["myactivity.search"])
et InitiatePortabilityArchive(resources = ["myactivity.youtube"])
.
La requête InitiatePortabilityArchive
renvoie un job_id
. Cet ID de tâche permet de récupérer l'état de l'archive de données.
archiveJobs.getPortabilityArchiveState
La méthode archiveJobs.getPortabilityArchiveState
est appelée pour récupérer l'état actuel de la tâche d'exportation de l'archive de données. Lorsque vous appelez getPortabilityArchiveState
, vous fournissez job_id
: GetPortabilityArchiveState(job_id)
. Vous devez également fournir un jeton OAuth avec des champs d'application correspondant aux groupes de ressources utilisés dans la requête initiate
.
Si l'état est COMPLETE
, des URL Cloud Storage signées sont renvoyées, que vous pouvez utiliser pour télécharger les données. Les URL signées expirent au bout de six heures, et les données sont disponibles pendant 14 jours.
Le traitement d'une demande d'archivage peut prendre plusieurs minutes, plusieurs heures, voire plusieurs jours, en fonction du volume de données. Vous pouvez vérifier l'état de l'archive toutes les cinq à 60 minutes.
resetAuthorization
La méthode resetAuthorization
effectue les opérations suivantes:
- Révoque toutes les habilitations OAuth accordées par l'utilisateur
- Permet à votre application d'appeler
InitiatePortabilityArchive
pour un groupe de ressources que vous avez utilisé précédemment - Supprime l'accès aux archives de données précédentes
Lorsque vous appelez resetAuthorization
, vous devez fournir un jeton OAuth associé à l'utilisateur dont vous réinitialisez l'autorisation.
archiveJobs.retryPortabilityArchive
La méthode archiveJobs.retryPortabilityArchive
est appelée pour réessayer les tâches ayant échoué, où la méthode archiveJobs.getPortabilityArchiveState
a déjà renvoyé un état de FAILED
. Cela peut être dû à une défaillance temporaire du backend. Dans ce cas, vous pouvez réessayer l'exportation sans obtenir un nouveau jeton OAuth de l'utilisateur. Lorsque vous appelez retryPortabilityArchive
, vous fournissez job_id
avec un jeton OAuth valide. Le point de terminaison tente ensuite de créer une exportation pour les mêmes groupes de ressources demandés dans la requête initiatePortabilityArchive
initiale. En cas de succès, ce point de terminaison renvoie un job_id
nouveau que vous pouvez utiliser dans les appels à getPortabilityArchiveState
. Une tâche ayant échoué peut être relancée jusqu'à trois fois.
Exemple :
Vous appelez
InitiatePortabilityArchive(resources = ["myactivity.search"])
et vous recevezjob_id: 0
.Après avoir appelé
GetPortabilityArchiveState(0)
, vous recevezJobSate: FAILED
.Vous pouvez ensuite appeler
RetryPortabilityArchive(0)
pour recevoirjob_id: 1
pourresources = ["myactivity.search"]
.Vous pourrez ensuite continuer à appeler
GetPortabilityArchiveState(1)
.
archiveJobs.cancelPortabilityArchive
La méthode archiveJobs.cancelPortabilityArchive
est appelée pour annuler une tâche individuelle sans révoquer les jetons existants lorsque vous avez un accès continu aux données utilisateur. Cela est utile lorsqu'une tâche ou une ressource n'est plus nécessaire et que vous souhaitez réinitialiser votre quota de tâches. La tâche doit être IN_PROGRESS
et avoir été créée avec un accès basé sur le temps pour être annulée.
Par exemple, vous pouvez annuler une tâche en cours basée sur le temps pour myactivity.youtube
et youtube.public_videos
, puis démarrer une nouvelle tâche pour myactivity.youtube
uniquement.
accessType.check
La méthode accessType.check
vous permet de vérifier si un jeton OAuth autorise un accès basé sur le temps ou unique avant de démarrer une tâche. Par exemple, vous pouvez envisager d'exporter l'historique complet d'un utilisateur s'il accorde un accès unique, ou seulement le dernier jour s'il accorde un accès basé sur le temps.
La réponse contient deux champs: des listes d'ID de groupe de ressources de portabilité des données à usage unique et basés sur le temps autorisés par le jeton OAuth utilisé dans la requête. Les utilisateurs ne peuvent pas mélanger les types d'accès dans une autorisation de jeton, mais vous ne devez pas nécessairement supposer ce comportement à l'avenir.