В разделе «Спецификация API» представлен подробный обзор технических компонентов, необходимых для интеграции с платформой, включая области авторизации, определения типов данных и структуры конечных точек. Этот API представляет собой стратегическое развитие устаревшего веб-API Fitbit, перестроенного на современной инфраструктуре для обеспечения более стабильной и согласованной работы разработчиков.
Области применения
Для использования областей действия API Google Health необходимо обновить запрос авторизации. Области действия определяют, поддерживает ли ваше приложение операции чтения или записи. Не используйте области действия, которые не нужны вашему приложению. Вы всегда можете добавить дополнительные области действия позже, если изменится дизайн вашего приложения.
Область действия API Google Health определяется HTTP-адресом, начинающимся с https://www.googleapis.com/auth/googlehealth.{scope}. Например, https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly.
Сопоставление областей видимости
Вот как области действия веб-API Fitbit соотносятся с областями действия API Google Health:
| Области действия веб-API Fitbit | Области действия API Google Health |
|---|---|
| активность | .activity_and_fitness.readonly .activity_and_fitness.writeonly |
| уровень глюкозы в крови | .health_metrics_and_measurements.readonly .health_metrics_and_measurements.writeonly |
| кардио_фитнес | .activity_and_fitness.readonly .activity_and_fitness.writeonly |
| ЭКГ | .ecg.readonly |
| частота сердечных сокращений | .health_metrics_and_measurements.readonly .health_metrics_and_measurements.writeonly |
| нерегулярные_ритм_уведомления | .irn.readonly |
| расположение | .location.readonly |
| питание | .nutrition.readonly .nutrition.writeonly |
| насыщение кислородом | .health_metrics_and_measurements.readonly .health_metrics_and_measurements.writeonly |
| профиль | .profile.readonly .profile.writeonly |
| частота дыхания | .health_metrics_and_measurements.readonly .health_metrics_and_measurements.writeonly |
| настройки | .settings.readonly .settings.writeonly |
| спать | .sleep.readonly .sleep.writeonly |
| температура | .health_metrics_and_measurements.readonly .health_metrics_and_measurements.writeonly |
| масса | .health_metrics_and_measurements.readonly .health_metrics_and_measurements.writeonly |
Типы данных
Ниже приведён список типов данных API Google Health и их соответствие веб-API Fitbit.
| Тип данных веб-API Fitbit | Тип данных API Google HealthdataType |
|---|---|
| Калории, связанные с физической активностью | Сожженная активная энергияactive-energy-burned |
| Минуты активной зоны | Минуты активной зоныactive-zone-minutes |
| Содержит изменения уровня активности пользователя. | Уровень активностиactivity-level |
| Высота | Высотаaltitude |
| Уровень глюкозы в крови | Уровень глюкозы в кровиblood-glucose |
| Жировая ткань | Жировая масса телаbody-fat |
caloriesOut в каждой зоне частоты сердечных сокращений | Калории в зоне частоты сердечных сокращенийcalories-in-heart-rate-zone |
| Температура (ядра) | Температура телаcore-body-temperature |
| Сводка по вариабельности сердечного ритма | Суточная вариабельность сердечного ритмаdaily-heart-rate-variability |
| Сводка SpO2 | Суточная сатурация кислородаdaily-oxygen-saturation |
| Частота сердечных сокращений в состоянии покоя | Ежедневная частота сердечных сокращений в состоянии покояdaily-resting-heart-rate |
| Температура кожи | Ежедневные измерения температуры во время снаdaily-sleep-temperature-derivations |
| Расстояние | Расстояниеdistance |
| Электрокардиограмма (ЭКГ) | Электрокардиограмма (ЭКГ)electrocardiogram |
| Зарегистрированная активность | Упражнениеexercise |
| Полы | Полыfloors |
| Еда | Едаfood |
| Измерительный прибор для пищевых продуктов | Измерительный прибор для пищевых продуктовfood-measurement-unit |
| Частота сердечных сокращений | Частота сердечных сокращенийheart-rate |
| Вариабельность сердечного ритма внутри дня | Вариабельность сердечного ритмаheart-rate-variability |
| Уведомления о нерегулярном ритме (IRN) | Уведомление о нарушении ритмаirregular-rhythm-notification |
| Журнал учета продуктов питания | Журнал учета пищевых продуктовnutrition-log |
| Внутридневная сатурация кислорода (SpO2) | Насыщение кислородомoxygen-saturation |
| Значение VO2 Max во время бега пользователя | Бег VO2 Maxrun-vo2-max |
| Последовательность активности во времени, минуты сидячего образа жизни | Сидячий периодsedentary-period |
| Спать | Спатьsleep |
| Шаги | Шагиsteps |
| Последовательность движений во времени при плавании | Данные о длине заплывовswim-lengths-data |
caloriesOut на активность | Общее количество калорийtotal-calories |
| Значение VO2 Max | VO2 Maxvo2-max |
| Масса | Массаweight |
Конечные точки
REST-интерфейсы используют единый синтаксис для всех типов данных.
- Конечная точка сервиса : базовый HTTP-адрес изменяется на https://health.googleapis.com.
- Синтаксис конечных точек : API Google Health поддерживает ограниченное количество конечных точек, которые могут использоваться большинством поддерживаемых типов данных. Это обеспечивает согласованный синтаксис для всех типов данных и упрощает использование конечных точек.
- Идентификатор пользователя : В синтаксисе конечной точки следует указывать либо идентификатор пользователя, либо me. При использовании me идентификатор пользователя определяется на основе токена доступа.
Пример : Вот пример вызова конечной точки GET Profile с использованием API Google Health.
ПОЛУЧИТЬ https://health.googleapis.com/v4/users/me/profile
Сопоставление конечных точек
Список доступных типов данных и поддерживаемых ими методов API см. в таблице типов данных API Google Health .
| Тип конечной точки веб-API Fitbit | API Google Health |
| Запрос GET (Log | Summary | Daily Summary), в котором запрашиваются данные за один день. | Метод dailyRollup с windowSize = 1 день |
| GET (внутридневная торговля), где запрашиваются детализированные данные. | метод списка |
| Получение данных (временного ряда) по дате или интервалу. | Метод rollUp или dailyRollUp , включающий диапазон дат. |
| GET (Список логов) | метод списка |
| СОЗДАНИЕ И ОБНОВЛЕНИЕ ЖУРНАЛОВ | метод патча |
| Удалить журналы | метод batchDelete |
| Получить профиль | Метод users.getProfile возвращает конкретную информацию о пользователе. Метод users.getSettings возвращает единицы измерения и часовые пояса пользователя. |
| ОБНОВИТЬ профиль | Команда users.updateProfile изменяет конкретную информацию пользователя. Параметр users.updateSettings изменяет единицы измерения и часовые пояса пользователя. |
| Получить идентификатор пользователя | Метод users.getIdentity возвращает идентификатор пользователя, связанный с его учетной записью Fitbit (старая версия) и идентификатор пользователя Google. |
| Получить устройства | users.pairedDevices возвращает список сопряженных устройств. |
| Создать подписку | projects.subscribers.subscriptions.create вручную создает подписку |
| Удалить подписки | projects.subscribers.subscriptions.delete удалить подписку |
| Получить список подписчиков | projects.subscribers.subscriptions.list отображает все подписки |