1. Введение
Visual Studio Code (VS Code) и расширение Rest Client от Хуачао Мао позволяют тестировать процесс авторизации Google OAuth и API Google Health. В этом практическом занятии мы покажем, как настроить расширение Rest Client, как инициировать процесс авторизации и выполнить первый вызов к одной из конечных точек API Google Health. После этого вы сможете ознакомиться с документацией Rest Client и документацией Fitbit, чтобы создать другие конечные точки в вашем HTTP-проекте.
Если вы не хотите использовать VS Code и REST-клиент, вызовы API можно выполнять с помощью команд curl .
Что вы узнаете
- Как настроить VS Code с расширением REST-клиента.
- Как настроить идентификатор клиента в консоли Google Cloud.
- Как пройти процедуру авторизации Google OAuth 2.0 для получения токена доступа и токена обновления.
- Как выполнять вызовы к конечным точкам API Google Health с помощью REST-клиента.
Что вам понадобится
- Мобильное приложение Fitbit
- Visual Studio Code
- Расширение REST Client от Хуачо Мао.
Чтобы настроить мобильное приложение Fitbit:
- Найдите мобильное приложение Fitbit в Apple App Store или Google Play Store и скачайте его.
- Выберите значок приложения.
- Нажмите «Войти через Google».
- Выберите свой аккаунт Google и нажмите кнопку «Продолжить» .
Для установки инструментов Visual Studio:
- Скачайте VS Code. Обычно в загруженном архиве находится исполняемый файл.
- Запустите VS Code.
- Установите расширение Rest Client от Хуачао Мао.
- Нажмите на значок расширения.
в левой части IDE. - Найдите REST Client от Huachao Mao и нажмите «Установить» .
- Нажмите на значок расширения.
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-сервисов .
- Нажмите кнопку «Создать» .
- В разделе метрик нажмите кнопку «Создать OAuth-клиент» .
- Выберите тип приложения: Веб-приложение .
- Введите имя идентификатора клиента.
- Оставьте поле «Авторизованные источники JavaScript» пустым.
- В разделе «Авторизованные URI перенаправления» нажмите кнопку «+ Добавить URI» . Введите «https://www.google.com» в качестве URI перенаправления.
- Нажмите кнопку «Создать» .
- В консоли Google отобразится сообщение о создании идентификатора клиента. Вы можете либо нажать на ссылку «Скачать JSON» , чтобы загрузить идентификатор клиента и секретный ключ клиента, либо записать эти значения. После этого восстановить секретный ключ клиента будет невозможно.
- Нажмите ОК . Вы вернетесь на страницу «Идентификаторы клиентов OAuth 2.0».
- Ваш идентификатор клиента будет добавлен к вашему проекту. Щелкните URL-адрес идентификатора клиента, чтобы просмотреть подробности.
Добавить тестовых пользователей
- В левой панели выберите «Аудитория» . Вы должны увидеть, что в поле «Статус публикации» установлено значение «Тестирование », а в поле «Тип пользователя» — «Внешний ».
- В разделе «Тестовые пользователи» нажмите кнопку «+ Добавить пользователей» . Введите адрес электронной почты каждого пользователя, данные которого вы хотите получить.
- Нажмите кнопку «Сохранить» .
Добавьте области действия к идентификатору клиента.
- В левой панели выберите «Доступ к данным» .
- Нажмите кнопку «Добавить или удалить области действия» .
- В столбце API найдите "Google Health API". Для этого практического задания мы используем область действия
.../auth/googlehealth.activity_and_fitness.readonly - После выбора области действия нажмите кнопку «Обновить» , чтобы вернуться на страницу доступа к данным.
- Нажмите кнопку «Сохранить» .
Вы завершили настройку своего идентификатора клиента.
3. Создайте поток авторизации.
- Откройте приложение VS Code на своем компьютере.
- На экране приветствия выберите «Открыть» .
- Выберите папку для создания проекта и нажмите «Открыть» . На экране должно отобразиться примерно следующее: название вашей папки или проекта будет отображаться в проводнике.

- В главном меню выберите Файл -> Создать текстовый файл .
- Сохраните файл, чтобы дать ему имя. В главном меню выберите Файл -> Сохранить как -> Codelab.http . Это поместит файл в ваш проект. Расширение файла должно быть либо .http, либо .rest. В этом примере мы используем .http.
В ходе этого проекта мы будем многократно использовать несколько значений. Эти значения следующие:
| Значение идентификатора клиента из консоли Google. |
| Секретная ценность клиента из консоли Google. |
| Конечная точка в вашем приложении, которая обрабатывает код авторизации. Для практического занятия мы используем https://www.google.com |
| Токен доступа, создаваемый для пользователя после завершения процесса получения согласия. |
| Токен обновления, создаваемый для пользователя после завершения процесса получения согласия. |
Добавьте следующий код, определяющий переменные, используемые в этом проекте. Он должен располагаться в верхней части файла Codelab.http. Заполните значения для client_id и secret.
### File Variables for the Codelab
@client_id =
@secret =
@redirect_uri = https://www.google.com
@accessToken={{user.response.body.access_token}}
@refreshToken={{user.response.body.refresh_token}}
URL-адрес авторизации, используемый для запуска процесса получения согласия, будет отправлен каждому пользователю, к данным которого вы хотите получить доступ. Для создания URL-адреса авторизации нам необходимо знать конечную точку Google OAuth и использовать параметры запроса для указания идентификатора клиента, областей доступа и места перенаправления пользователя после получения согласия на использование этих областей. Полную документацию по созданию строки авторизации Google можно найти в документации .
Конечная точка OAuth 2.0 от Google находится по адресу https://accounts.google.com/o/oauth2/v2/auth . Доступ к этой конечной точке возможен только по протоколу HTTPS. Простые HTTP-соединения отклоняются.
Сервер авторизации Google поддерживает множество параметров строки запроса для веб-приложений, позволяющих настраивать процесс авторизации. Мы будем использовать следующие обязательные параметры запроса: client_id , redirect_uri , response_type и scope . В документации приведен список всех параметров запроса и их описание.
Значения параметров запроса следующие:
| Значение идентификатора клиента из консоли Google. |
| Конечная точка в вашем приложении, которая обрабатывает код авторизации. Для выполнения практического задания используйте https://www.google.com |
| |
| Ссылки на области действия (scopes) берутся из консоли Google с использованием синтаксиса https://www.googleapis.com , за которым следует имя области действия. Например, https://www.googleapis.com/auth/googlehealth.activity_and_fitness. |
После переменных укажите URL-адрес авторизации, как показано. Параметры, определенные в верхней части проекта, нельзя использовать в строке авторизации. Поэтому необходимо включить значения для client_id и redirect_uri . Замените строку client-id на ваш идентификатор клиента.
### Google Health API Rest Client Example
### Authorization String
https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=https://www.google.com&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
Когда пользователь дает согласие, Google предоставляет код авторизации, который вы обмениваете на токен доступа, вызывая конечную точку токена Google. Добавьте следующее определение для вызова конечной точки токена к Codelab.http ниже строки авторизации. На следующем шаге вы замените authorization-code на код авторизации.
### AUTHORIZATION ENDPOINTS
######################################################################
# @name user
POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded
code=authorization-code&client_id={{clientId}}&client_secret={{secret}}&redirect_uri={{redirect_uri}}&grant_type=authorization_code
Параметр @name user указывает на текущего пользователя, к данным которого вы обращаетесь.
4. Авторизуйте учетную запись и получите токены.
Теперь мы рассмотрим процесс авторизации для получения токенов авторизации.
Строка авторизации в Codelab.http используется для запуска процесса получения согласия от Google через браузер. Расширение Rest Client может отображать ссылку «Отправить запрос» для этого URL-адреса. Не используйте «Отправить запрос» для этого конкретного URL-адреса. Вместо этого скопируйте и вставьте его в свой браузер или используйте Ctrl+Click (Windows/Linux) или Cmd+Click (Mac) в VS Code, чтобы открыть его в браузере по умолчанию.
https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=https://www.google.com&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
- Вам будет предложено войти в свою учетную запись Google. Необходимо войти, используя одну из тестовых учетных записей пользователей, которые вы настроили в разделе «Добавить тестовых пользователей» .
- Возможно, вам будет показано сообщение о том, что приложение не проверено. Это связано с тем, что приложение еще не опубликовано. Нажмите «Продолжить».

- На странице согласия отображается список запрашиваемых областей действия. Пользователь может выбрать те области, которыми он хочет поделиться с этим приложением. Нажмите «Продолжить».
После подтверждения согласия на предоставление запрошенных прав доступа, вы будете перенаправлены на указанный вами redirect_uri (в этом примере — https://www.google.com). Google добавляет к redirect_uri код авторизации и другие параметры, поэтому URL-адрес в адресной строке вашего браузера должен выглядеть примерно так:
https://www.google.com/?code=4/0Ab32j93oyGWqaXE112sP1IKmh3kV1fE4tcHIMXYJQYWgNEtAa_0-YsfkS9Ekj3Be89u3fw&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
Код авторизации — это буквенно-цифровое значение, находящееся между "code=" и "&scope". В приведенном выше примере значение следующее:
4/0Ab32j93oyGWqaXE112sP1IKmh3kV1fE4tcHIMXYJQYWgNEtAa_0-YsfkS9Ekj3Be89u3fw
В рабочем приложении ваш сервер будет анализировать это из параметров URL. Для этого практического задания скопируйте код авторизации из URL в вашем браузере.
Теперь замените этот код авторизации на access_token и refresh_token . В Codelab.http замените authorization-code в теле POST-запроса /token на скопированный вами код авторизации.
POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded
code=authorization-code&client_id={{client_id}}&client_secret={{secret}}&redirect_uri={{redirect_uri}}&grant_type=authorization_code
Нажмите на ссылку «Отправить запрос» чуть выше строки POST https://oauth2.googleapis.com/token .
Ответ должен выглядеть примерно так:
{
"access_token": "ya29.a0ATi6K2uasci7FyyIClNLtQou6z...",
"expires_in": 3599,
"refresh_token": "1//05EuqYpEXjJCHCgYIA...",
"scope": "https://www.googleapis.com/auth/googlehealth.activity_and_fitness",
"token_type": "Bearer",
"refresh_token_expires_in": 604799
}
Получив этот ответ, Rest Client автоматически заполнит переменные @accessToken и @refreshToken , определенные в начале Codelab.http для использования в последующих запросах.
О токенах обновления
При обмене кодом авторизации ответ может включать в себя не только 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. Добавьте данные в мобильное приложение Fitbit.
Новым пользователям Fitbit может не хватать данных для запросов в их учетной записи. Мы вручную добавим запись о тренировке, которую затем можно будет запросить через один из конечных пунктов. Чтобы вручную записать тренировку, выполните следующие шаги:
- Откройте мобильное приложение Fitbit на своем устройстве. При необходимости войдите в свою учетную запись Fitbit.
- В правом нижнем углу экрана нажмите кнопку «+».
- В разделе «Вручную» нажмите «Действия» .
- Найдите вид физической активности «Ходьба» и выберите его.
- Введите время начала занятий на сегодня.
- Измените продолжительность на 15 минут .
- Оставьте расстояние 1,0 мили .
- Нажмите « Добавить ».
- Для синхронизации мобильного приложения с серверами Fitbit нажмите и удерживайте палец на экране, затем проведите им вниз. После отпускания пальца вы увидите, как мобильное приложение синхронизируется.
- В разделе «Активность» вы должны увидеть запись о прогулке, внесенную вами вручную.

6. Получение данных с использованием метода списка.
Чтобы вызвать метод list , добавьте следующий код в Codelab.http , сразу после конечной точки /token .
### users.dataTypes.dataPoints
#####################################################
### LIST exercise
GET https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints
Authorization: Bearer {{accessToken}}
Accept: application/json
Этот код вызывает конечную точку list для отображения количества шагов, зарегистрированных пользователем в его учетной записи Fitbit. В ответе будет возвращено количество шагов за каждую минуту, аналогично конечной точке Activity Intraday веб-API Fitbit v1.
Для выполнения вызова нажмите ссылку «Отправить запрос» для конечной точки GET. Ваш ответ должен выглядеть примерно так:
{
"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": ""
}
Многие конечные точки поддерживают параметры запроса для фильтрации или пагинации. Например, для упражнений поддерживается фильтр interval.civil_start_time . Добавьте следующий запрос к Codelab.http , чтобы вывести список упражнений в определенном временном диапазоне:
### LIST exercise >= civil start time
GET https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints?filter=exercise.interval.civil_start_time >= "2026-02-22T00:00:00"
Authorization: Bearer {{accessToken}}
Accept: application/json
7. Поздравляем!
Поздравляем!
Вы завершили базовый практический урок и успешно научились использовать Visual Studio Code и расширение Rest Client для тестирования авторизации OAuth 2.0 и выполнения вызовов к конечным точкам Google Health API. Теперь вы можете добавить дополнительные конечные точки так же, как и в начале раздела «Получение данных с помощью метода List» .
Мы надеемся, что вам понравится создавать приложения, интегрирующиеся с экосистемой Google Health API. Для получения дополнительной информации ознакомьтесь с другими конечными точками Google Health API в справочной документации и узнайте больше о Google OAuth 2.0 для веб-серверных приложений .