Вызов методов API переносимости данных

API переносимости данных состоит из следующих методов:

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

переносимостьАрхив.инициате

Вы вызываете метод portabilityArchive.initiate , чтобы запустить новое задание экспорта данных.

Когда вы запускаете задание экспорта для создания архива данных, вы должны запросить соответствующую группу ресурсов и предоставить токен OAuth с необходимыми областями для этой группы ресурсов. Токен OAuth используется для авторизации запроса и определения того, какие пользовательские данные экспортируются.

Список всех групп ресурсов, поддерживаемых конкретной службой, см. на справочной странице схемы для этой службы.

Например, если вы экспортируете данные о поисковой активности, вы вызываете InitiatePortabilityArchive(resources = ["myactivity.search"]) . К запросу должен быть прикреплен токен OAuth с областью поиска OAuth: https://www.googleapis.com/auth/dataportability.myactivity.search .

Хотя в один вызов InitiatePortabilityArchive можно включить несколько групп ресурсов, это не рекомендуется. Вы можете добиться более быстрой обработки, создав отдельные запросы InitiatePortabilityArchive для каждой группы ресурсов. Обратите внимание: когда вы запрашиваете несколько групп ресурсов, к прикрепленному токену OAuth должны быть прикреплены все соответствующие области.

Например, вместо вызова InitiatePortabilityArchive(resources = ["myactivity.search","myactivity.youtube"]) для создания архива данных как для поиска, так и для активности на YouTube, выполните следующие отдельные вызовы: InitiatePortabilityArchive(resources = ["myactivity.search"]) и InitiatePortabilityArchive(resources = ["myactivity.youtube"]) .

Запрос InitiatePortabilityArchive возвращает job_id . Этот идентификатор задания используется для получения состояния архива данных.

archiveJobs.getPortabilityArchiveState

Метод archiveJobs.getPortabilityArchiveState вызывается для получения текущего состояния задания экспорта архива данных. Когда вы вызываете getPortabilityArchiveState , вы указываете job_id : GetPortabilityArchiveState(job_id) . Вы также должны предоставить токен OAuth с областями, соответствующими группам ресурсов, использованным в initiate запросе.

Если состояние COMPLETE , возвращаются подписанные URL-адреса облачного хранилища, которые можно использовать для загрузки данных. Срок действия подписанных URL-адресов истекает через шесть часов, а данные доступны в течение 14 дней.

Запрос на архивирование может занять несколько минут, несколько часов или даже несколько дней в зависимости от объема данных. Проверять состояние архива можно каждые пять-60 минут.

сброс авторизации

Метод resetAuthorization делает следующее:

  • Отменяет все предоставленные пользователем области OAuth.
  • Позволяет вашему приложению вызывать InitiatePortabilityArchive для группы ресурсов, которую вы использовали ранее.
  • Удаляет доступ к предыдущим архивам данных

Когда вы вызываете resetAuthorization , вы должны предоставить прикрепленный токен OAuth для пользователя, авторизацию которого вы сбрасываете.

archiveJobs.retryPortabilityArchive

Метод archiveJobs.retryPortabilityArchive вызывается для повторения неудачных заданий, в которых метод archiveJobs.getPortabilityArchiveState уже вернул состояние FAILED . Это может произойти из-за временного сбоя на серверной стороне. В этом случае вы можете повторить экспорт без получения нового токена OAuth от пользователя. Когда вы вызываете retryPortabilityArchive вы предоставляете job_id вместе с действительным токеном OAuth. Затем конечная точка пытается создать экспорт для тех же групп ресурсов , которые были запрошены в исходном запросе initiatePortabilityArchive . В случае успеха эта конечная точка возвращает новый job_id , который вы можете использовать в вызовах getPortabilityArchiveState . Неудачное задание можно повторить до трех раз.

Например:

  1. Вы вызываете InitiatePortabilityArchive(resources = ["myactivity.search"]) и получаете job_id: 0 .

  2. После вызова GetPortabilityArchiveState(0) вы получаете JobSate: FAILED .

  3. Затем вы можете вызвать RetryPortabilityArchive(0) , чтобы получить job_id: 1 для resources = ["myactivity.search"] .

  4. Затем вы можете продолжать вызывать GetPortabilityArchiveState(1) .