1. Введение
OAuth 2.0 Playground — это веб-инструмент, который помогает тестировать потоки авторизации Google OAuth 2.0 без написания кода. В этом практическом занятии вы узнаете, как настроить свой проект Google Cloud, получить учетные данные, инициировать процесс авторизации с помощью OAuth 2.0 Playground и выполнить первый вызов к одной из конечных точек API Google Health.
Что вы узнаете
- Как настроить идентификатор клиента в консоли Google Cloud.
- Как пройти процедуру авторизации Google OAuth 2.0, чтобы получить токен доступа и токен обновления с помощью OAuth 2.0 Playground.
- Как выполнять вызовы к конечным точкам API Google Health с помощью OAuth 2.0 Playground.
Что вам понадобится
- Аккаунт Google
- Мобильное приложение Fitbit
- Игровая площадка OAuth 2.0
Чтобы настроить мобильное приложение Fitbit:
- Найдите мобильное приложение Fitbit в Apple App Store или Google Play Store и скачайте его.
- Выберите значок приложения.
- Нажмите «Войти через Google» .
- Выберите свой аккаунт Google и нажмите кнопку «Продолжить» .
2. Настройка проекта Google Cloud
Для создания идентификатора клиента и включения использования API Google Health вам потребуется использовать консоль Google Cloud.
- Войдите в консоль Google Cloud .
- Для создания нового проекта:
- Нажмите «Выбрать проект» в окне выбора проектов.
- В правом верхнем углу выберите «Новый проект» .
- Введите название вашего проекта .
- Укажите ваше местоположение (например, "Нет организации").
- Нажмите кнопку «Создать» .
- Выберите свой проект.
Включите API Google Health.
- В верхнем левом углу нажмите на значок меню:

- Выберите API и сервисы > Библиотека .
- Найдите "Google Health API" и включите его.
Настройте свои учетные данные OAuth.
Если вы не вошли в консоль Google Cloud, перейдите в консоль Google Cloud .
- В верхнем левом углу нажмите на значок меню:

- Выберите API и сервисы > Учетные данные .
- В верхней центральной части выберите + Создать учетные данные > Идентификатор клиента OAuth .
- Нажмите кнопку «Настроить экран согласия» . Если появится сообщение «Платформа аутентификации Google еще не настроена», нажмите кнопку «Начать» .
- В разделе 1:
- Введите название приложения .
- Введите адрес электронной почты службы поддержки пользователей .
- Нажмите кнопку «Далее» .
- В разделе 2:
- Выберите «Внешний» .
- Нажмите кнопку «Далее» .
- В разделе 3:
- Введите свой адрес электронной почты в поле «Контактная информация» .
- Нажмите кнопку «Далее» .
- В разделе 4:
- Установите флажок, чтобы согласиться с Политикой Google в отношении пользовательских данных в рамках API-сервисов .
- Нажмите кнопку «Создать» .
- Перейдите в раздел API и сервисы > Учетные данные и выберите + Создать учетные данные > Идентификатор клиента OAuth .
- Выберите тип приложения: Веб-приложение .
- Введите имя идентификатора клиента.
- Оставьте поле «Авторизованные источники JavaScript» пустым.
- В разделе «Авторизованные URI перенаправления» нажмите « + Добавить URI» и добавьте следующие URI:
-
https://www.google.com -
https://developers.google.com/oauthplayground
-
- Нажмите кнопку «Создать» .
- В консоли Google отобразится сообщение о создании идентификатора клиента. Вы можете либо нажать на ссылку «Скачать JSON» , чтобы загрузить идентификатор клиента и секретный ключ клиента, либо записать эти значения. После этого восстановить секретный ключ клиента будет невозможно.
- Нажмите ОК . Вы вернетесь на страницу «Идентификаторы клиентов OAuth 2.0».
- Ваш идентификатор клиента будет добавлен к вашему проекту. Щелкните URL-адрес идентификатора клиента, чтобы просмотреть подробности.
Добавить тестовых пользователей
- В левой панели выберите «Аудитория» . Вы должны увидеть, что в поле «Статус публикации» установлено значение «Тестирование », а в поле «Тип пользователя» — «Внешний ».
- В разделе «Тестовые пользователи» нажмите кнопку «+ Добавить пользователей» . Введите адрес электронной почты каждого пользователя, данные которого вы хотите получить.
- Нажмите кнопку «Сохранить» .
Добавьте области действия к идентификатору клиента.
- В левой панели выберите «Доступ к данным» .
- Нажмите кнопку «Добавить или удалить области действия» .
- В столбце API найдите "Google Health API". Для этого практического задания мы используем область действия
.../auth/googlehealth.activity_and_fitness.readonly - После выбора области действия нажмите кнопку «Обновить» , чтобы вернуться на страницу доступа к данным.
- Нажмите кнопку «Сохранить» .
Вы завершили настройку своего идентификатора клиента.
3. Добавьте данные в мобильное приложение Fitbit.
Новым пользователям Fitbit может не хватать данных для запросов в их учетной записи. Мы вручную добавим запись о тренировке, которую затем можно будет запросить через один из конечных пунктов. Чтобы вручную записать тренировку, выполните следующие шаги:
- Откройте мобильное приложение Fitbit на своем устройстве. При необходимости войдите в свою учетную запись Fitbit.
- В правом нижнем углу экрана нажмите кнопку «+».
- В разделе «Вручную» нажмите «Действия» .
- Найдите вид физической активности «Ходьба» и выберите его.
- Введите время начала занятий на сегодня.
- Измените продолжительность на 15 минут .
- Оставьте расстояние 1,0 мили .
- Нажмите « Добавить ».
- Для синхронизации мобильного приложения с серверами Fitbit нажмите и удерживайте палец на экране, затем проведите им вниз. После отпускания пальца вы увидите, как мобильное приложение синхронизируется.
- В разделе «Активность» вы должны увидеть запись о прогулке, внесенную вами вручную.

4. Авторизация в среде OAuth 2.0 Playground
Перейдите в OAuth 2.0 Playground .
Для работы с API Google Health необходимо использовать собственные учетные данные OAuth в Playground.
- Нажмите на значок шестеренки «Настройка OAuth 2.0» в правом верхнем углу.
- Выберите « Использовать собственные учетные данные OAuth» .
- Введите идентификатор клиента OAuth и секретный ключ клиента OAuth, полученные вами во время настройки проекта в Google Cloud.
Интерфейс Playground разделен на три основных этапа, которые мы будем выполнять:
- Выберите и авторизуйте API.
- Обменяйте код авторизации на токены
- Отправьте запрос к API.
Выберите и авторизуйте API.
Здесь вы выбираете области действия API, к которым хотите обращаться.
- На шаге 1 найдите Google Health API v4 в списке API и разверните его.
- Выберите
https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly. Если нужная вам область действия не отображается в списке, вы можете ввести ее вручную в поле «Введите свои собственные области действия». - Нажмите «Авторизовать API» .
- Запрос отправляется на конечную точку авторизации OAuth 2.0 от Google, в запрос включаются выбранные области действия, после чего вы перенаправляетесь на экран подтверждения учетной записи Google.
- Войдите в систему, используя тестовую учетную запись пользователя, которую вы настроили в разделе «Настройка проекта Google Cloud» (если вы еще не вошли в систему).
- Проверьте запрашиваемые разрешения и нажмите «Продолжить» , чтобы предоставить доступ.
После предоставления согласия Google перенаправляет вас обратно в Playground и предоставляет инструменту код авторизации , который используется на следующем шаге.
На панели «Запрос/Ответ» справа отображается полный процесс перенаправления HTTP.
В ответ на первоначальный запрос авторизации приходит сообщение об ошибке 302 Found :
HTTP/1.1 302 Found
Location: https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&prompt=consent&response_type=code&client_id=your_client_id&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgooglehealth.activity_and_fitness.readonly&access_type=offline
В результате запроса, перенаправленного обратно в Playground, содержится код авторизации:
GET /oauthplayground/?iss=https://accounts.google.com&code=authorization_code&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly HTTP/1.1
Host: developers.google.com
Код авторизации — это буквенно-цифровое значение, представленное параметром authorization_code между code= и &scope в URL-адресе GET запроса. В этом примере значение выглядит примерно так: 4/0AbPOj...
Обменяйте код авторизации на токены
На этом этапе код обменивается на токены, позволяющие отправлять запросы к API.
После завершения выбора и авторизации API , Playground автоматически заполняет поле кода авторизации. Чтобы обменять его на токены:
- На шаге 2 нажмите кнопку « Код авторизации биржи для токенов» .
- Параметры access_token и refresh_token отображаются на панели «Запрос/Ответ» справа.
Вы должны увидеть ответ, похожий на следующий:
{
"access_token": "ya29.a0AFH6S....",
"refresh_token_expires_in": 604799,
"expires_in": 3599,
"token_type": "Bearer",
"scope": "https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly",
"refresh_token": "1/og..."
}
О токенах обновления
При обмене кодом авторизации ответ может включать в себя не только access_token но и refresh_token . access_token имеет короткий срок действия (обычно 1 час). Когда access_token истекает, необходимо использовать refresh_token для получения нового access_token без необходимости повторного входа пользователя в систему или подтверждения согласия. Это возможно, поскольку мы включили access_type=offline в наш запрос авторизации.
Если в ответе не отображается refresh_token , это может быть связано с тем, что вы уже предоставили согласие для этого приложения и областей действия. Refresh token обычно выдаются только при первом предоставлении пользователем согласия для вашего приложения или при добавлении prompt=consent к URL-адресу авторизации, чтобы принудительно отображать экран согласия даже при последующих авторизациях.
Ток refresh_token имеет длительный срок действия, но может истечь или стать недействительным, если он не используется в течение 6 месяцев, если пользователь отзывает доступ к вашему приложению или по другим причинам. Вам следует надежно хранить refresh_token для дальнейшего использования.
Об обновлении областей видимости
Если вашему приложению впоследствии потребуется доступ к дополнительным областям действия API Google Health, необходимо предложить пользователю повторно авторизовать приложение и запросить полный набор областей действия (как существующих, так и новых).
Чтобы обновить области действия в запросе авторизации вашего приложения:
- Укажите полный список областей применения , необходимых для вашего приложения.
- Измените параметр
scopeв URL-адресе авторизации, чтобы включить обновленный список значений scope, разделенных пробелами. - Добавьте
prompt=consentк параметрам URI аутентификации. При наличииprompt=consentэкран подтверждения согласия будет отображаться каждый раз, когда ваше приложение запрашивает авторизацию областей действия, предлагая пользователю подтвердить обновленный список.
После того, как пользователь подтвердит согласие, вы получите новый код авторизации, который можно обменять на токены, охватывающие весь набор прав доступа.
5. Отправьте запрос к API.
Теперь вы можете использовать свой токен доступа для отправки запросов к API Google Health. На шаге 3 в Playground настройте свой HTTP-запрос, указав URI запроса , метод HTTP , заголовки и тело запроса.
- Установите метод HTTP на GET .
- Установите URI запроса на
https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints. - Нажмите « Отправить запрос» .
Ответ должен выглядеть примерно так:
{
"dataPoints": [
{
"name": "users/2515055256096816351/dataTypes/exercise/dataPoints/8896720705097069096",
"dataSource": {
"recordingMethod": "MANUAL",
"platform": "FITBIT"
},
"exercise": {
"interval": {
"startTime": "2026-02-23T13:10:00Z",
"startUtcOffset": "-18000s",
"endTime": "2026-02-23T13:25:00Z",
"endUtcOffset": "-18000s"
},
"exerciseType": "WALKING",
"metricsSummary": {
"caloriesKcal": 16,
"distanceMillimiters": 1609344,
"steps": "2038",
"averagePaceSecondsPerMeter": 0.55923407301360051,
"activeZoneMinutes": "0"
},
"exerciseMetadata": {},
"displayName": "Walk",
"activeDuration": "900s",
"exerciseEvents": [
{
"eventTime": "2026-02-23T13:10:00Z",
"eventUtcOffset": "-18000s",
"exerciseEventType": "START"
},
{
"eventTime": "2026-02-23T13:25:00Z",
"eventUtcOffset": "-18000s",
"exerciseEventType": "STOP"
}
],
"updateTime": "2026-02-24T01:19:22.450466Z"
}
},
{
"name": "users/2515055256096816351/dataTypes/exercise/dataPoints/5870930690409355408",
"dataSource": {
"recordingMethod": "MANUAL",
"platform": "FITBIT"
},
"exercise": {
"interval": {
"startTime": "2026-02-23T06:00:00Z",
"startUtcOffset": "-18000s",
"endTime": "2026-02-23T06:15:00Z",
"endUtcOffset": "-18000s"
},
"exerciseType": "WALKING",
"metricsSummary": {
"caloriesKcal": 17,
"distanceMillimiters": 1609344,
"steps": "2038",
"averagePaceSecondsPerMeter": 0.55923407301360051,
"averageHeartRateBeatsPerMinute": "81",
"activeZoneMinutes": "0",
"heartRateZoneDurations": {
"lightTime": "900s"
}
},
"exerciseMetadata": {},
"displayName": "Walk",
"activeDuration": "900s",
"exerciseEvents": [
{
"eventTime": "2026-02-23T06:00:00Z",
"eventUtcOffset": "-18000s",
"exerciseEventType": "START"
},
{
"eventTime": "2026-02-23T06:15:00Z",
"eventUtcOffset": "-18000s",
"exerciseEventType": "STOP"
}
],
"updateTime": "2026-02-23T08:29:39.480437Z"
}
}
],
"nextPageToken": ""
}
Многие конечные точки поддерживают параметры запроса для фильтрации или пагинации. Например, чтобы отобразить список упражнений за определенный период времени, измените URI запроса, добавив параметр фильтра:
https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints?filter=exercise.interval.civil_start_time >= "2026-02-22T00:00:00"
Нажмите «Отправить запрос еще раз», чтобы увидеть отфильтрованные результаты.
6. Поздравляем!
Поздравляем!
Вы успешно завершили базовый практический урок и научились использовать OAuth2 Playground для тестирования авторизации OAuth 2.0 и выполнения вызовов к конечным точкам API Google Health.
Мы надеемся, что вам понравится создавать приложения, интегрирующиеся с экосистемой Google Health API. Для получения дополнительной информации ознакомьтесь с другими конечными точками Google Health API в справочной документации и узнайте больше о Google OAuth 2.0 для веб-серверных приложений .