Как разработать функции, связанные с шагами, с помощью Google Health API

Google Health API отслеживает данные о шагах и активности пользователя, используя тип данных steps. Количество шагов – это основной показатель ежедневной физической активности. Он помогает разработчикам отслеживать прогресс в фитнесе, рассчитывать расход энергии и создавать пользовательские сводки ежедневной активности.

Узнайте, как считывать и структурировать показатели количества шагов в приложении, чтобы сделать его максимально удобным для пользователей.

Поддерживаемые типы данных

API поддерживает следующий тип данных для отслеживания количества шагов:

Таблица. Типы данных о шагах в Google Health API
Тип данных Доступные
операции
Область действия
Шаги
dataType: steps
filter parameter: steps
Тип записи: интервал.
Разрешение хранилища: 1 минута.

Совместимые устройства

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly

Правила

При интеграции отслеживания шагов в приложение следуйте этим рекомендациям по дизайну и реализации.

Расчет скорости и темпа

Google Health API использует стандартные формулы для расчета скорости и темпа:

  • Скорость = distance / time(hour)
  • Темп: time(seconds) / distance

Единица измерения расстояния определяется заголовком Accept-Language, указанным в запросе.

Обзор дня

Чтобы точно агрегировать ежедневное количество шагов во время путешествий, смены часовых поясов или перехода на летнее время, не выполняйте расчеты продолжительности на стороне клиента. Вместо этого отправьте запрос к конечной точке dailyRollUp, которая автоматически устраняет пробелы в данных, используя смещения UTC. Сводка возвращает StepsRollupValue, содержащий поле countSum, которое представляет общее количество шагов за запрашиваемый день. Подробную информацию можно найти в разделе Агрегирование по календарным дням руководства по агрегированию данных.

Пользовательские интерфейсы для рисования (сверка)

При создании элементов пользовательского интерфейса для отображения данных о шагах используйте конечную точку reconcile. Если шаги одновременно записываются из нескольких источников данных (например, умных часов и мобильного телефона), конечная точка reconcile разрешает конфликты и объединяет потоки, чтобы вернуть один согласованный поток данных.

Информацию о том, как обрабатывать перекрывающиеся интервалы при синхронизации подключенных устройств и изменяемости временных меток, можно найти в руководстве по управлению данными.

Отслеживание и гистограммы в течение дня

Чтобы посмотреть подробные сведения о действиях пользователя в течение дня (в виде диаграмм и графиков):

  • Гистограммы шагов по часам или минутам. Отправьте запрос к конечной точке rollUp, указав продолжительность (например, 60s для 1 минуты или 3600s для 1 часа) с помощью параметра windowSize. Поскольку данные о шагах записываются с интервалом в 1 минуту (60s), задайте для windowSize значение не менее 60s. Запросы с размером окна меньше минуты (например, 10s или 30s) не разбивают общие значения по минутам, а помещают количество за полную минуту в первый подходящий подсегмент. Подробнее об окне свертки и разрешении хранилища…
  • Все записи о шагах. Используйте конечную точку list, чтобы получить наиболее подробные необработанные записи о шагах.

Конечные точки rollUp, dailyRollUp и reconcile принимают параметр dataSourceFamily, позволяющий фильтровать данные из определенных групп источников. Дополнительную информацию и примеры использования можно найти в разделе Фильтрация по семейству источников данных руководства по фильтрации данных.

Синхронизация в реальном времени с помощью вебхуков

Подпишитесь на коллекцию типа данных steps, чтобы получать уведомления в реальном времени, когда импортируются или синхронизируются новые данные о шагах. Вместо того чтобы опрашивать конечные точки REST, динамически обновляйте клиентские панели управления в ответ на эти уведомления вебхуков. Подробнее о том, как настроить подписки на вебхуки…