Méthodes de l'API Call Data Portability

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 :

  1. Vous appelez InitiatePortabilityArchive(resources = ["myactivity.search"]) et vous recevez job_id: 0.

  2. Après avoir appelé GetPortabilityArchiveState(0), vous recevez JobSate: FAILED.

  3. Vous pouvez ensuite appeler RetryPortabilityArchive(0) pour recevoir job_id: 1 pour resources = ["myactivity.search"].

  4. 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.