Чтобы настроить OAuth для вашего приложения, вы настраиваете рабочий процесс OAuth и включаете области OAuth API переносимости данных.
Настройте рабочий процесс OAuth
Чтобы настроить поток OAuth для вашего приложения, выполните основные шаги, описанные в документации Google Identity.
Большинство разработчиков используют поток серверных веб-приложений для получения согласия OAuth, но вы также можете использовать поток веб-приложений JavaScript или поток мобильных и настольных приложений .
Экспорт может занять больше времени, чем срок действия токена доступа, или пользователь может предоставить доступ на 30 или 180 дней. Возможно, вам потребуется получить токен обновления и периодически обменивать его на новый токен доступа. Дополнительные сведения см. в разделах Обновление токена доступа для веб-приложений и Обновление токена доступа для мобильных и настольных приложений .
Важно ! Обновление токена OAuth доступно пользователям только в том случае, если ваш клиент OAuth имеет статус публикации « В производстве» , а не «Тестируется» . Кроме того, срок действия токенов, предоставленных клиентам OAuth со статусом публикации «Тестирование» , всегда истекает через 7 дней, даже если вы выберете продолжительность 30 или 180 дней. Подробную информацию см. в разделе «Настройка экрана согласия OAuth» .
Области OAuth API переносимости данных
При настройке приложения API переносимости данных для OAuth включите области OAuth API переносимости данных, соответствующие вашему приложению. Некоторые области являются sensitive
и restricted
, и к ним предъявляются дополнительные требования.
Когда вы добавляете области API переносимости данных в поток OAuth, могут возникнуть случаи, когда ваш пользователь дает согласие на некоторые, но не на все области. Ваше приложение должно иметь возможность обрабатывать эти случаи следующим образом:
- Разрешение частичного экспорта данных
- Уведомление пользователя о том, что он не выбрал все необходимые области (и корректный сбой)
- Запрос у пользователя оставшихся согласий
Кроме того, пользователь выбирает, предоставить ли вам доступ к своим данным один раз, на 30 или 180 дней.
- Если пользователь предоставляет вам однократный доступ, вашему приложению разрешено выполнить один экспорт данных для этого конкретного согласия. Для повторной загрузки данных необходимо новое согласие пользователя.
- Если пользователь предоставляет вам доступ на основе времени, вашему приложению разрешено выполнять экспорт данных в течение указанного периода времени или до тех пор, пока пользователь не отзовет согласие.
- Вы также можете применить временные фильтры к вашему запросу для экспорта данных за определенный период времени, например за последние 6 месяцев.
Также следует учитывать, что во время процесса OAuth ваше приложение не знает, какая учетная запись Google использовалась для предоставления согласия. Токен OAuth, который получает ваше приложение, непрозрачен.
Если вы ищете информацию о том, как пользователи передают данные, см. раздел Как поделиться копией своих данных с третьим лицом .
Ограничения областей действия
В этом разделе рассматриваются ограничения в областях, которые приводят к ошибкам.
Смешанные области применения
Запросы на области API переносимости данных (например, https://www.googleapis.com/auth/dataportability.*) нельзя смешивать с другими областями (например, https://www.googleapis.com/auth/userinfo.email). Вот пример неправильного запроса, ограниченная часть которого выделена жирным шрифтом:
https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search+https://www.googleapis.com/auth/userinfo.email&
include_granted_scopes=false
Ранее предоставленные области
Никогда не следует устанавливать include_granted_scopes=true
при запросе областей DPAPI. Вот пример неправильного запроса, ограниченная часть которого выделена жирным шрифтом:
https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search&
include_granted_scopes=true
Слишком много областей
Если к вашему запросу добавлено слишком много областей, вы можете столкнуться с ошибкой 400 bad request
. Это происходит, когда длина URL-адреса превышает длину, поддерживаемую браузерами. Чтобы решить эту проблему, разделите запросы на области на несколько небольших пакетов и используйте добавочную авторизацию для запроса согласия для каждого пакета.
Категории областей действия
Список всех областей OAuth, поддерживаемых API переносимости данных, и их категорий см. в разделе Доступные области OAuth . Список всех групп ресурсов и областей OAuth, поддерживаемых конкретной службой, см. на справочной странице схемы для этой службы.