Chamar métodos da API Data Portability

A API Data Portability consiste nos seguintes métodos:

  • portabilityArchive.initiate
  • archiveJobs.getPortabilityArchiveState
  • resetAuthorization
  • archiveJobs.retryPortabilityArchive

portabilityArchive.initiate

Chame o método portabilityArchive.initiate para iniciar um novo job de exportação de dados.

Ao iniciar um job de exportação para criar um arquivo de dados, é necessário solicitar o grupo de recursos apropriado e fornecer um token OAuth com os escopos necessários para esse grupo de recursos. O token OAuth é usado para autorizar a solicitação e determinar quais dados do usuário estão sendo exportados.

Para ver uma lista de todos os grupos de recursos compatíveis com um serviço específico, consulte a página de referência do esquema desse serviço.

Por exemplo, se você estiver exportando dados de atividade de pesquisa, chame InitiatePortabilityArchive(resources = ["myactivity.search"]). A solicitação precisa ter um token OAuth anexado com o escopo do OAuth de pesquisa: https://www.googleapis.com/auth/dataportability.myactivity.search.

Embora seja possível incluir vários grupos de recursos em uma única chamada InitiatePortabilityArchive, isso não é recomendado. Consiga um processamento mais rápido fazendo solicitações InitiatePortabilityArchive separadas para cada grupo de recursos. Quando você solicita vários grupos de recursos, o token OAuth anexado precisa ter todos os escopos apropriados.

Por exemplo, em vez de chamar InitiatePortabilityArchive(resources = ["myactivity.search","myactivity.youtube"]) para criar um arquivo de dados para atividades de pesquisa e do YouTube, faça estas chamadas separadas: InitiatePortabilityArchive(resources = ["myactivity.search"]) e InitiatePortabilityArchive(resources = ["myactivity.youtube"]).

A solicitação InitiatePortabilityArchive retorna um job_id. Esse ID do job é usado para recuperar o estado do arquivo de dados.

archiveJobs.getPortabilityArchiveState

O método archiveJobs.getPortabilityArchiveState é chamado para recuperar o state atual do job de exportação do arquivo de dados. Ao chamar getPortabilityArchiveState, você fornece o job_id: GetPortabilityArchiveState(job_id). Também é necessário fornecer um token OAuth com escopos que correspondam aos grupos de recursos usados na solicitação initiate.

Se o estado for COMPLETE, serão retornados URLs assinados do Cloud Storage que poderão ser usados para fazer o download dos dados. Os URLs assinados expiram após seis horas e os dados ficam disponíveis por 14 dias.

Uma solicitação de arquivamento pode levar vários minutos, várias horas ou até vários dias para ser concluída, dependendo do volume de dados. É possível verificar o estado do arquivo a cada 5 a 60 minutos.

resetAuthorization

O método resetAuthorization faz o seguinte:

  • Revoga todos os escopos OAuth concedidos ao usuário
  • Permite que o aplicativo chame InitiatePortabilityArchive para um grupo de recursos usado anteriormente
  • Remove o acesso a arquivos de dados anteriores

Ao chamar resetAuthorization, é necessário fornecer um token OAuth anexado para o usuário que terá a autorização sendo redefinida.

archiveJobs.retryPortabilityArchive

O método archiveJobs.retryPortabilityArchive é chamado para repetir jobs com falha em que o método archiveJobs.getPortabilityArchiveState já retornou um state de FAILED. Isso pode ocorrer devido a uma falha temporária no back-end. Nesse caso, é possível fazer a exportação novamente sem receber um novo token OAuth do usuário. Ao chamar retryPortabilityArchive, você fornece o job_id com um token OAuth válido. Em seguida, o endpoint tenta criar uma exportação para os mesmos grupos de recursos solicitados na solicitação initiatePortabilityArchive inicial. Se for bem-sucedido, esse endpoint retornará um novo job_id que pode ser usado em chamadas para getPortabilityArchiveState. Um job com falha pode ser repetido até três vezes.

Exemplo:

  1. Você chama InitiatePortabilityArchive(resources = ["myactivity.search"]) e recebe job_id: 0.

  2. Depois de chamar GetPortabilityArchiveState(0), você recebe JobSate: FAILED.

  3. Em seguida, você pode chamar RetryPortabilityArchive(0) para receber job_id: 1 para resources = ["myactivity.search"].

  4. Em seguida, você poderá continuar fazendo chamadas para GetPortabilityArchiveState(1).