API переносимости данных позволяет создавать приложения, которые запрашивают у пользователя разрешение на перемещение копии данных из сервисов Google в ваше приложение. Это обеспечивает переносимость данных и облегчает переключение услуг.
Если вы ищете информацию о том, как пользователи передают данные, см. раздел Как поделиться копией своих данных с третьим лицом .
Предварительные условия
Прежде чем выпускать ваше приложение, оно должно быть одобрено Google.
Вам также следует убедиться, что API переносимости данных доступен пользователям в вашем регионе. Список поддерживаемых стран и регионов см. в разделе «Общие вопросы» на странице «Отправка копии своих данных третьему лицу».
Рабочий процесс разработчика
Ниже приведены шаги, которые необходимо выполнить для создания приложения, использующего API переносимости данных.

- Реализуйте поток согласия OAuth для пользователя. В этом примере пользователь предоставляет доступ к видеоданным YouTube. - Пользователь нажимает «Импортировать видео с YouTube» и входит в свою учетную запись Google. 
- Приложение перенаправляет пользователя на URL-адрес согласия OAuth. Обратите внимание, что этот пример URL-адреса упрощен и в нем отсутствуют некоторые параметры: - https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/dataportability.myactivity.youtube
- Пользователь нажимает «Далее» на экране согласия OAuth, соглашается поделиться своими данными и предоставляет доступ к учетной записи. 
- Пользователь выбирает, какими данными делиться, а также время, в течение которого приложение может получать доступ к этим данным ( однократный доступ к своим данным или доступ по времени в течение 30 или 180 дней), а затем нажимает «Продолжить» . - Примечание . За 90 дней до истечения срока действия вашего токена OAuth пользователь имеет возможность продлить доступ к своим данным до истечения срока действия вашего токена OAuth. Кнопка продления не отображается, если у пользователя нет областей действия, срок действия которых истекает в течение 90 дней. - Примечание . Если пользователь хочет переключиться между однократным доступом и доступом на основе времени, ему придется снова пройти процедуру согласия после отзыва существующего разрешения. Вы можете отозвать грант с помощью - resetAuthorization(), или пользователь может отозвать его на странице своих подключений .
- Пользователь перенаправляется в приложение. 
- Разработчик получает токен OAuth для пользователя. 
 
- Ваше приложение вызывает - InitiatePortabilityArchive(resources = ["myactivity.youtube"])с прикрепленным токеном OAuth, который содержит эту область OAuth:- https://www.googleapis.com/auth/dataportability.myactivity.youtube- Этот вызов запускает процесс создания архива данных и отвечает идентификатором задания и указанием того, предоставил ли пользователь однократный или временной доступ. - Примечание . Одноразовый доступ означает один экспорт для каждой области . Если пользователь предоставляет несколько областей, вы можете создать отдельные задания для каждого ресурса, авторизованного токеном. 
- Ваше приложение вызывает - GetPortabilityArchiveState(job_id)с прикрепленным токеном OAuth, который содержит эту область OAuth:- https://www.googleapis.com/auth/dataportability.myactivity.youtube- Вы можете вызвать этот метод несколько раз, чтобы получить статус задания архивирования. Метод возвращает состояние задания. Если состояние - COMPLETE, архив готов и предоставлены подписанные URL-адреса облачного хранилища. Обратите внимание, что время, необходимое для выполнения запроса на архивирование, может варьироваться от минут до часов в зависимости от размера данных.
- Загрузите архив данных, используя подписанные URL-адреса. 
- Если пользователь предоставляет однократный доступ , вы вызываете - ResetAuthorization()с прикрепленным токеном OAuth, чтобы сбросить исчерпанные ресурсы и удалить все разрешения OAuth.
- Если пользователь предоставляет доступ на основе времени , вы можете экспортировать ресурсы каждые 24 часа, пока не истечет срок действия согласия. 
Дополнительные сведения об использовании методов API переносимости данных см. в разделе Вызов методов API переносимости данных .
Как пользователи взаимодействуют с приложением API переносимости данных
На этой диаграмме показано, как пользователи взаимодействуют с приложением, интегрированным с API переносимости данных.

- Во-первых, пользователю предоставляется возможность получить свои данные. 
- Затем пользователь входит в свою учетную запись Google. 
- Затем пользователь нажимает «Далее» , когда ему предлагается поделиться своими данными, и нажимает «Я понимаю» , когда ему предлагается принять политику конфиденциальности. 
- Затем пользователю отображается экран согласия OAuth, который позволяет приложению получить доступ к его данным. Указанные здесь параметры соответствуют настроенным вами областям OAuth. Пользователь выбирает, какими данными делиться и в течение какого времени приложение может получать доступ к этим данным ( однократный доступ к своим данным или доступ по времени в течение 30 или 180 дней), а затем нажимает «Продолжить» . 
- После разрешения доступа начнется импорт данных. В зависимости от размера данных выполнение запроса может занять от нескольких минут до нескольких часов.