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
. Неудачное задание можно повторить до трех раз.
Например:
Вы вызываете
InitiatePortabilityArchive(resources = ["myactivity.search"])
и получаетеjob_id: 0
.После вызова
GetPortabilityArchiveState(0)
вы получаетеJobSate: FAILED
.Затем вы можете вызвать
RetryPortabilityArchive(0)
, чтобы получитьjob_id: 1
дляresources = ["myactivity.search"]
.Затем вы можете продолжать вызывать
GetPortabilityArchiveState(1)
.
archiveJobs.cancelPortabilityArchive
Метод archiveJobs.cancelPortabilityArchive
вызывается для отмены отдельного задания без отзыва существующих токенов, когда у вас есть постоянный доступ к пользовательским данным. Это полезно, когда задание или ресурс больше не нужны и вы хотите сбросить квоту заданий. Чтобы отменить задание, оно должно иметь IN_PROGRESS
и быть создано с доступом по времени.
Например, вы можете отменить выполняющееся задание с указанием времени для myactivity.youtube
и youtube.public_videos
, а затем начать новое задание только для myactivity.youtube
.
accessType.check
Метод accessType.check
позволяет перед началом задания проверить, разрешает ли токен OAuth доступ по времени или однократный доступ. Например, вы можете экспортировать всю историю пользователя, если он предоставляет однократный доступ, или только последний день, если он предоставляет доступ на основе времени.
Ответ содержит два поля: списки одноразовых и временных идентификаторов групп ресурсов переносимости данных, авторизованных токеном OAuth, используемым в запросе. Пользователи не могут смешивать типы доступа при предоставлении токена, но не обязательно предполагать такое поведение в будущем.