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 для дальнейшего использования.
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 для веб-серверных приложений .