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:
Você chama
InitiatePortabilityArchive(resources = ["myactivity.search"])
e recebejob_id: 0
.Depois de chamar
GetPortabilityArchiveState(0)
, você recebeJobSate: FAILED
.Em seguida, você pode chamar
RetryPortabilityArchive(0)
para receberjob_id: 1
pararesources = ["myactivity.search"]
.Em seguida, você poderá continuar fazendo chamadas para
GetPortabilityArchiveState(1)
.