Google Health API 数据类型

下表包含完整的数据类型列表,其中有多个列可帮助您了解每种类型在 Google Health API 中的表示形式,以及每种类型可用的范围。

表格:Google Health API 数据类型
数据类型
  dataType
  filter 参数
可用的
操作
范围
活跃时消耗的能量
active-energy-burned
active_energy_burned
记录类型: 间隔
list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
活跃分钟数
active-minutes
active_minutes
记录类型: 间隔

兼容的设备

  • Fitbit Air
  • Fitbit Alta
  • Fitbit Alta HR
  • Fitbit Blaze
  • Fitbit Charge 2
  • Fitbit Charge 3
  • Fitbit Flex 2
  • Fitbit Inspire
  • Fitbit Inspire HR
  • Pixel Watch 4
list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
活跃区间分钟数
active-zone-minutes
active_zone_minutes
记录类型: 间隔

兼容的设备

list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
活动级别
activity-level
activity_level
记录类型: 间隔
list、reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
海拔
altitude
altitude
记录类型: 间隔
list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
血糖
blood-glucose
blood_glucose
记录类型: 示例
list、get、reconcile、rollup、dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
体脂率
body-fat
body_fat
记录类型: 示例

兼容的设备

list、get、reconcile、rollup、dailyRollup、create、update、batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
心率区间的卡路里摄入量
calories-in-heart-rate-zone
calories_in_heart_rate_zone
记录类型: 间隔
汇总,dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
核心体温
core-body-temperature
core_body_temperature
记录类型: 示例
list、get、reconcile、rollup、dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
每日心率变异性
daily-heart-rate-variability
daily_heart_rate_variability
记录类型: 每日

兼容的设备

list、reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
每日心率区间
daily-heart-rate-zones
daily_heart_rate_zones
记录类型: 每日
list、reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
每日血氧饱和度
daily-oxygen-saturation
daily_oxygen_saturation
记录类型: 每日

兼容的设备

list、reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
每日呼吸频率
daily-respiratory-rate
daily_respiratory_rate
记录类型: 每日

兼容的设备

list、reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
每日静息心率
daily-resting-heart-rate
daily_resting_heart_rate
记录类型: 每日

兼容的设备

list、reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
每日睡眠温度推导
daily-sleep-temperature-derivations
daily_sleep_temperature_derivations
记录类型: 每日

兼容的设备

list、reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
每日最大摄氧量
daily-vo2-max
daily_vo2_max
记录类型: 每日

兼容的设备

list、reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
距离
distance
distance
记录类型: 间隔

兼容的设备

list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
心电图 (ECG)
electrocardiogram
electrocardiogram
记录类型: 会话

兼容的设备

list .ecg.readonly
锻炼
exercise
exercise
记录类型: 会话

兼容的设备

list、get、reconcile、create、update、batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
爬楼层数
floors
floors
记录类型: 间隔
对账、汇总、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
美食
food
food
记录类型: 食物
list、get .nutrition.readonly
.nutrition.writeonly
食物计量单位
food-measurement-unit
food_measurement_unit
记录类型: 食物

兼容的设备

list、get .nutrition.readonly
.nutrition.writeonly
心率
heart-rate
heart_rate
记录类型: 示例

兼容的设备

list、reconcile、rollup、dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
心率变异性
heart-rate-variability
heart_rate_variability
记录类型: 示例

兼容的设备

list、reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
身高
height
height
记录类型: 示例
list、get、reconcile、create、update、batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
饮水记录
hydration-log
hydration_log
记录类型: 会话
list、get、reconcile、rollup、dailyRollup、create、update、batchDelete .nutrition.readonly
.nutrition.writeonly
心律不齐通知
irregular-rhythm-notification
irregular_rhythm_notification
记录类型: 会话
list .irn.readonly
月经期
menstrual-period
menstrual_period
记录类型: 间隔
create、update、batchDelete .reproductive_health.writeonly
情绪
moods
moods
记录类型: 示例
create、update、batchDelete .mindfulness.writeonly
营养记录
nutrition-log
nutrition_log
记录类型: 示例

兼容的设备

list、get、reconcile、rollup、dailyRollup、create、update、batchDelete .nutrition.readonly
.nutrition.writeonly
排卵检测
ovulation-test
ovulation_test
记录类型: 示例
create、update、batchDelete .reproductive_health.writeonly
血氧饱和度
oxygen-saturation
oxygen_saturation
记录类型: 示例

兼容的设备

list、reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
呼吸频率睡眠摘要
respiratory-rate-sleep-summary
respiratory_rate_sleep_summary
记录类型: 示例

兼容的设备

list、reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
跑步最大摄氧量
run-vo2-max
run_vo2_max
记录类型: 示例

兼容的设备

list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
久坐不动时段
sedentary-period
sedentary_period
记录类型: 间隔

兼容的设备

list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
睡眠
sleep
sleep
记录类型: 会话

兼容的设备

list、get、reconcile、create、update、batchDelete .sleep.readonly
.sleep.writeonly
步骤
steps
steps
记录类型: 间隔

兼容的设备

list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
游泳距离数据
swim-lengths-data
swim_lengths_data
记录类型: 间隔

兼容的设备

list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
症状
symptoms
symptoms
记录类型: 示例
create、update、batchDelete .logged_symptoms.writeonly
各心率区间时长
time-in-heart-rate-zone
time_in_heart_rate_zone
记录类型: 间隔
list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
总卡路里数
total-calories
total_calories
记录类型: 间隔

兼容的设备

汇总,dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
最大摄氧量
vo2-max
vo2_max
记录类型: 示例

兼容的设备

list、reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
权重
weight
weight
记录类型: 示例

兼容的设备

list、get、reconcile、rollup、dailyRollup、create、update、batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

查询限制

通过 API 查询数据点、汇总数据或每日汇总数据时,请注意以下限制:

  • 过滤条件要求:某些只读的派生数据类型(例如 total-calories)需要使用过滤条件指定时间间隔开始时间(使用物理时间或民用时间)。
  • 查询范围限制:汇总和每日汇总聚合端点会根据数据类型强制执行查询范围上限:
    • calories-in-heart-rate-zoneheart-rateactive-minutestotal-calories 的最长查询范围为 14 天。
    • 所有其他数据类型的查询范围不得超过 90 天。

数据可用性

只有在用户同步其活动跟踪器或手动将新数据输入到 Fitbit 移动应用或 Web 应用后,才能更新用户的数据。当 Fitbit 应用在移动设备上处于打开状态,并且 Fitbit 设备和移动应用之间有有效的数据连接且在蓝牙范围内时,Fitbit 设备和 Fitbit 移动应用可以每 15 分钟自动同步一次。如果用户使用 MobileTrack 追踪活动,只要应用处于打开状态,MobileTrack 就会每小时同步一次。

查询历史数据

Google Health API 的核心优势之一是能够长时间跟踪用户的表现并监控其健康指标。您可以查询用户自开始记录数据以来的所有数据;该 API 不会对应用可使用的历史数据量施加任何限制。

不过,查询历史数据仍受标准速率限制的约束。为了管理系统稳定性和防止过多的载荷,Google Health API 使用自动分页功能,并为每个端点设置了特定的页面大小。请注意以下边界和行为:

  • 自动分页:如果您查询的数据时间跨度较长,API 将仅返回第一页结果(最多为相应端点的页面大小上限),以及 nextPageToken。您必须使用 nextPageToken 来请求后续页面。
  • 可变页面大小:上限取决于端点和数据类型。对于大多数数据类型,页面大小上限为 10,000。 不过,对于某些数据类型(例如 exercisesleep),默认和最大页面大小上限为 25。例如,如果客户端请求过去 10 年的所有睡眠数据,API 仍只会返回第一页上的 25 个睡眠会话。
  • 汇总日期范围限制:对于数据汇总和聚合端点(例如 rollUpdailyRollUp),查询日期范围会根据数据类型受到限制:
    • calories-in-heart-rate-zoneheart-rateactive-minutestotal-calories 的最长范围为 14 天。
    • 所有其他汇总数据类型的最长范围为 90 天。

根据应用所需的历史数据量,检索整个数据集需要按顺序翻阅各个页面。在设计应用的数据同步流程时,请谨记这一点。

为确保最佳性能并避免 API 错误,请在查询历史数据时遵循以下准则:

分阶段数据同步(热加载与冷加载)

  • 初始“热”加载:在主要加载序列期间,仅提取并呈现最近 7-14 天的数据。这样可确保用户立即看到数据,而无需等待长时间运行的查询。
  • 后台“冷”加载:在主要界面呈现后,将较旧的历史数据检索委托给异步的低优先级队列或后台进程。

针对聚合的查询分块

  • 由于汇总和每日汇总端点强制执行最长日期范围限制(14 天或 90 天,具体取决于数据类型),因此您必须将大型历史汇总查询分解为较小的连续时间间隔,以符合这些限制。
  • 安全地批量处理或按顺序处理这些子查询,以遵守并发限制并保持稳定的界面进度指示器。

利用预汇总的汇总数据

重构概览信息中心和趋势图表,以使用预先汇总的摘要端点(例如 DailyRollUpDataPoints)。这将大幅减少后端计算开销和客户端网络传输时间。

弹性错误处理(智能重试)

  • 遇到速率限制 (429 Too Many Requests) 和服务器网关超时 (504 Gateway Timeout) 时,请实现严格的指数退避算法处理。切勿立即重试失败的大型载荷。即时重试会加剧后端拥塞,并导致系统性能进一步下降。

第三方访问权限

Fitbit 设备无法直接与第三方应用或服务通信。这些设备旨在专门与 Fitbit 移动应用通信和同步。

当 Fitbit 应用处于打开状态时,设备会全天自动同步数据;如果蓝牙处于活动状态且应用在后台运行,设备则会每隔 15 分钟自动同步一次数据。此同步过程完成后,第三方服务即可通过 Google Health API 获取相应数据。

距离标准

锻炼距离(例如 elevationGainMillimeters)以毫米为标准单位进行测量,原因如下:

  1. 保持数据精度:使用毫米的最重要原因是确保我们读取和提供的数据不会丢失任何精度。使用毫米等精细单位可以高精度地表示测量结果。
  2. 标准化:毫米是我们各项服务中设计的标准化单位。这种一致性有助于确保与 API 的不同部分互动的开发者获得统一的体验。
  3. 广泛的测量系统支持:使用毫米等基本单位可让开发者轻松转换为任何其他所选单位,无论他们使用的是公制、英制还是其他测量系统。

可变的日长

健康 API 的时间处理功能会优先考虑用户的时间,以应对因夏令时或旅行而导致的一天时长变化。每个数据点都存储了实际的 UTC 时间戳和事件发生时有效的 UTC 偏移量。这样一来,系统便可以:

  • 将事件映射到精确的物理瞬间。
  • 将时间更正为用户的本地上下文以进行汇总。

夏令时

在夏令时开始时,时间会“回拨”,从而导致一个民用日有 25 小时,而相应日期的汇总数据将包含 25 小时的数据。“调快”会导致民用日为 23 小时,时间会调回标准时间。

旅游

跨时区旅行可能会导致单个民用日的实际时长出现更显著的变化。

使用 dailyRollUp 端点来协调时区差异。它会根据用户的本地时间自动将数据归因于记录数据时的日历日期,从而有效地“缝合”一天的数据,即使时区发生变化也是如此。