Выполните свой первый вызов API Google Health с помощью OAuth2 Playground.

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.

Что вам понадобится

Чтобы настроить мобильное приложение Fitbit:

  1. Найдите мобильное приложение Fitbit в Apple App Store или Google Play Store и скачайте его.
  2. Выберите значок приложения.
  3. Нажмите «Войти через Google» .
  4. Выберите свой аккаунт Google и нажмите кнопку «Продолжить» .

2. Настройка проекта Google Cloud

Для создания идентификатора клиента и включения использования API Google Health вам потребуется использовать консоль Google Cloud.

  1. Войдите в консоль Google Cloud .
  2. Для создания нового проекта:
    1. Нажмите «Выбрать проект» в окне выбора проектов.
    2. В правом верхнем углу выберите «Новый проект» .
    3. Введите название вашего проекта .
    4. Укажите ваше местоположение (например, "Нет организации").
    5. Нажмите кнопку «Создать» .
    6. Выберите свой проект.

Включите API Google Health.

  1. В верхнем левом углу нажмите на значок меню:меню
  2. Выберите API и сервисы > Библиотека .
  3. Найдите "Google Health API" и включите его.

Настройте свои учетные данные OAuth.

Если вы не вошли в консоль Google Cloud, перейдите в консоль Google Cloud .

  1. В верхнем левом углу нажмите на значок меню:меню
  2. Выберите API и сервисы > Учетные данные .
  3. В верхней центральной части выберите + Создать учетные данные > Идентификатор клиента OAuth .
  4. Нажмите кнопку «Настроить экран согласия» . Если появится сообщение «Платформа аутентификации Google еще не настроена», нажмите кнопку «Начать» .
  5. В разделе 1:
    1. Введите название приложения .
    2. Введите адрес электронной почты службы поддержки пользователей .
    3. Нажмите кнопку «Далее» .
  6. В разделе 2:
    1. Выберите «Внешний» .
    2. Нажмите кнопку «Далее» .
  7. В разделе 3:
    1. Введите свой адрес электронной почты в поле «Контактная информация» .
    2. Нажмите кнопку «Далее» .
  8. В разделе 4:
    1. Установите флажок, чтобы согласиться с Политикой Google в отношении пользовательских данных в рамках API-сервисов .
    2. Нажмите кнопку «Создать» .
  9. Перейдите в раздел API и сервисы > Учетные данные и выберите + Создать учетные данные > Идентификатор клиента OAuth .
  10. Выберите тип приложения: Веб-приложение .
  11. Введите имя идентификатора клиента.
  12. Оставьте поле «Авторизованные источники JavaScript» пустым.
  13. В разделе «Авторизованные URI перенаправления» нажмите « + Добавить URI» и добавьте следующие URI:
    • https://www.google.com
    • https://developers.google.com/oauthplayground
  14. Нажмите кнопку «Создать» .
  15. В консоли Google отобразится сообщение о создании идентификатора клиента. Вы можете либо нажать на ссылку «Скачать JSON» , чтобы загрузить идентификатор клиента и секретный ключ клиента, либо записать эти значения. После этого восстановить секретный ключ клиента будет невозможно.
  16. Нажмите ОК . Вы вернетесь на страницу «Идентификаторы клиентов OAuth 2.0».
  17. Ваш идентификатор клиента будет добавлен к вашему проекту. Щелкните URL-адрес идентификатора клиента, чтобы просмотреть подробности.

Добавить тестовых пользователей

  1. В левой панели выберите «Аудитория» . Вы должны увидеть, что в поле «Статус публикации» установлено значение «Тестирование », а в поле «Тип пользователя» — «Внешний ».
  2. В разделе «Тестовые пользователи» нажмите кнопку «+ Добавить пользователей» . Введите адрес электронной почты каждого пользователя, данные которого вы хотите получить.
  3. Нажмите кнопку «Сохранить» .

Добавьте области действия к идентификатору клиента.

  1. В левой панели выберите «Доступ к данным» .
  2. Нажмите кнопку «Добавить или удалить области действия» .
  3. В столбце API найдите "Google Health API". Для этого практического задания мы используем область действия .../auth/googlehealth.activity_and_fitness.readonly
  4. После выбора области действия нажмите кнопку «Обновить» , чтобы вернуться на страницу доступа к данным.
  5. Нажмите кнопку «Сохранить» .

Вы завершили настройку своего идентификатора клиента.

3. Добавьте данные в мобильное приложение Fitbit.

Новым пользователям Fitbit может не хватать данных для запросов в их учетной записи. Мы вручную добавим запись о тренировке, которую затем можно будет запросить через один из конечных пунктов. Чтобы вручную записать тренировку, выполните следующие шаги:

  1. Откройте мобильное приложение Fitbit на своем устройстве. При необходимости войдите в свою учетную запись Fitbit.
  2. В правом нижнем углу экрана нажмите кнопку «+».
  3. В разделе «Вручную» нажмите «Действия» .
  4. Найдите вид физической активности «Ходьба» и выберите его.
  5. Введите время начала занятий на сегодня.
  6. Измените продолжительность на 15 минут .
  7. Оставьте расстояние 1,0 мили .
  8. Нажмите « Добавить ».
  9. Для синхронизации мобильного приложения с серверами Fitbit нажмите и удерживайте палец на экране, затем проведите им вниз. После отпускания пальца вы увидите, как мобильное приложение синхронизируется.
  10. В разделе «Активность» вы должны увидеть запись о прогулке, внесенную вами вручную. Скриншот, демонстрирующий прогулку.

4. Авторизация в среде разработки OAuth 2.0 Playground.

Перейдите в OAuth 2.0 Playground .

Для работы с API Google Health необходимо использовать собственные учетные данные OAuth в Playground.

  1. Нажмите на значок шестеренки «Настройка OAuth 2.0» в правом верхнем углу.
  2. Выберите « Использовать собственные учетные данные OAuth» .
  3. Введите идентификатор клиента OAuth и секретный ключ клиента OAuth, полученные вами во время настройки проекта в Google Cloud.

Интерфейс Playground разделен на три основных этапа, которые мы будем выполнять:

  1. Выберите и авторизуйте API.
  2. Обменяйте код авторизации на токены
  3. Отправьте запрос к API.

Выберите и авторизуйте API.

Здесь вы выбираете области действия API, к которым хотите обращаться.

  1. На шаге 1 найдите Google Health API v4 в списке API и разверните его.
  2. Выберите https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly . Если нужная вам область действия не отображается в списке, вы можете ввести ее вручную в поле «Введите свои собственные области действия».
  3. Нажмите «Авторизовать API» .
  4. Запрос отправляется на конечную точку авторизации OAuth 2.0 от Google, в запрос включаются выбранные области действия, после чего вы перенаправляетесь на экран подтверждения учетной записи Google.
  5. Войдите в систему, используя тестовую учетную запись пользователя, которую вы настроили в разделе «Настройка проекта Google Cloud» (если вы еще не вошли в систему).
  6. Проверьте запрашиваемые разрешения и нажмите «Продолжить» , чтобы предоставить доступ.

После предоставления согласия 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 автоматически заполняет поле кода авторизации. Чтобы обменять его на токены:

  1. На шаге 2 нажмите кнопку « Код авторизации биржи для токенов» .
  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 , заголовки и тело запроса.

  1. Установите метод HTTP на GET .
  2. Установите URI запроса на https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints .
  3. Нажмите « Отправить запрос» .

Ответ должен выглядеть примерно так:

{
  "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 для веб-серверных приложений .