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
. Неудачное задание можно повторить до трех раз.
Например:
Вы вызываете
InitiatePortabilityArchive(resources = ["myactivity.search"])
и получаетеjob_id: 0
.После вызова
GetPortabilityArchiveState(0)
вы получаетеJobSate: FAILED
.Затем вы можете вызвать
RetryPortabilityArchive(0)
, чтобы получитьjob_id: 1
дляresources = ["myactivity.search"]
.Затем вы можете продолжать вызывать
GetPortabilityArchiveState(1)
.