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

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

  • portabilityArchive.initiate
  • archiveJobs.getPortabilityArchiveState
  • resetAuthorization
  • archiveJobs.retryPortabilityArchive
  • archiveJobs.cancelPortabilityArchive
  • accessType.check

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

Вы вызываете метод 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) .

archiveJobs.cancelPortabilityArchive

Метод archiveJobs.cancelPortabilityArchive вызывается для отмены отдельного задания без отзыва существующих токенов, когда у вас есть постоянный доступ к пользовательским данным. Это полезно, когда задание или ресурс больше не нужны и вы хотите сбросить квоту заданий. Чтобы отменить задание, оно должно иметь IN_PROGRESS и быть создано с доступом по времени.

Например, вы можете отменить выполняющееся задание с указанием времени для myactivity.youtube и youtube.public_videos , а затем начать новое задание только для myactivity.youtube .

accessType.check

Метод accessType.check позволяет перед началом задания проверить, разрешает ли токен OAuth доступ по времени или однократный доступ. Например, вы можете экспортировать всю историю пользователя, если он предоставляет однократный доступ, или только последний день, если он предоставляет доступ на основе времени.

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