“API 规范”部分详细概述了与平台集成所需的技术组件,包括授权范围、数据类型定义和端点结构。此 API 是对旧版 Fitbit Web API 的战略性改进,基于现代基础设施重新构建,可确保提供更稳定、一致的开发者体验。
范围
您必须更新授权请求,以使用 Google Health API 范围。 相应范围定义了您的应用是否支持读取或写入操作。 请遵循范围实现说明,其中指定了仅请求所需的范围、仅在发送数据时配置写入权限,以及妥善处理部分同意情况。
Google Health API 范围是一个 HTTP 网址,以 https://www.googleapis.com/auth/googlehealth.{scope} 开头。例如,https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly。
范围映射
以下是 Fitbit Web API 范围与 Google Health API 范围的对应关系:
| Fitbit Web API 范围 | Google Health API 范围 |
|---|---|
| 活动 | .activity_and_fitness.readonly
.activity_and_fitness.writeonly |
| blood_glucose | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| cardio_fitness | .activity_and_fitness.readonly
.activity_and_fitness.writeonly |
| 心电图 | .ecg.readonly
|
| 心率 | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| irregular_rhythm_notifications | .irn.readonly
|
| 地理位置 | .location.readonly
|
| 营养 | .nutrition.readonly
.nutrition.writeonly |
| oxygen_saturation | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| 个人资料 | .profile.readonly
.profile.writeonly |
| respiratory_rate | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| 设置 | .settings.readonly
.settings.writeonly |
| sleep | .sleep.readonly
.sleep.writeonly |
| 温度 | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| 重量 | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
数据类型
下表列出了 Google Health API 数据类型及其与 Fitbit Web API 的对应关系。
如需详细了解如何针对这些类型报告数据,请参阅“数据存在情况和真实零值”指南。 本指南详细介绍了不活动状态和腕戴过滤。
| Fitbit Web API 数据类型 | Google Health API 数据类型dataType |
|---|---|
| 活动消耗卡路里数 | 消耗的活动能量active-energy-burned
|
| 活跃区间分钟数 | 活跃区间分钟数active-zone-minutes
|
| 包含用户活动级别的变化 | 活动级别activity-level
|
| 海拔 | 海拔altitude
|
| 血糖 | 血糖blood-glucose
|
| 体脂 | 体脂率body-fat
|
处于每个心率区间的时长:caloriesOut |
各心率区间的卡路里消耗量calories-in-heart-rate-zone
|
| 温度(核心) | 核心体温core-body-temperature
|
| HRV 摘要 | 每日心率变异性daily-heart-rate-variability
|
| 血氧饱和度总结 | 每日血氧饱和度daily-oxygen-saturation
|
| 静息心率 | 每日静息心率daily-resting-heart-rate
|
| 体表温度 | 每日睡眠体温推导daily-sleep-temperature-derivations
|
| 距离 | 距离distance
|
| 心电图 (ECG) | 心电图 (ECG)electrocardiogram
|
| 已录制的活动 | 锻炼exercise
|
| 楼层数 | 爬楼层数floors
|
| 食品 | 美食food
|
| 食品 | 美食food
|
| 食物测量单位 | 食物计量单位food-measurement-unit
|
| 食物测量单位 | 食物计量单位food-measurement-unit
|
| 心率 | 心率heart-rate
|
| HRV 当日 | 心率变异性heart-rate-variability
|
| 心律不齐通知 (IRN) | 心律不齐通知irregular-rhythm-notification
|
| 饮食日志 | 营养记录nutrition-log
|
| 饮食日志 | 营养记录nutrition-log
|
| 血氧饱和度当日数据 | 血氧饱和度图标 oxygen-saturation
|
| 用户跑步时的最大摄氧量值 | 跑步最大摄氧量run-vo2-max
|
| 活动时间序列分钟数(久坐) | 久坐时段sedentary-period
|
| 睡眠 | 睡眠图标 sleep
|
| 步骤 | 步骤steps
|
| 活动时间序列游泳姿势 | 游泳距离数据swim-lengths-data
|
活动 caloriesOut |
总卡路里数total-calories
|
| 最大摄氧量值 | 最大摄氧量vo2-max
|
| 重量 | 权重weight
|
端点
REST 端点针对所有数据类型采用一致的语法。
- 服务端点:基础 HTTP 网址更改为 https://health.googleapis.com。
- 端点语法:Google Health API 支持有限数量的端点,这些端点可供大多数受支持的数据类型使用。这为所有数据类型提供了一致的语法,并使端点更易于使用。
- 用户标识符:应在端点语法中指定用户 ID 或 me。使用 me 时,系统会根据访问令牌推断用户 ID。
示例:以下是使用 Google Health API 调用的 GET Profile 端点的示例
GET https://health.googleapis.com/v4/users/me/profile
端点映射
如需查看可用数据类型及其支持的 API 方法的列表,请参阅 Google Health API 数据类型表格。
| Fitbit Web API 端点类型 | Google Health API |
| GET(日志 | 摘要 | 日摘要),用于请求单天数据 | windowSize 为 1 天的 dailyRollup 方法 |
| GET(日内)请求精细数据 | list 方法 |
| 按日期或间隔获取(时间序列) | 包含日期范围的 rollUp 或 dailyRollUp 方法 |
| GET(日志列表) | list 方法 |
| 创建和更新日志 | patch 方法 |
| 删除日志 | batchDelete 方法 |
| 获取个人资料 | users.getProfile 返回用户的特定信息
users.getSettings 返回用户的单位和时区 |
| 更新个人资料 | users.updateProfile 修改用户的特定信息
users.updateSettings 修改用户的单位和时区 |
| 获取用户 ID | users.getIdentity 会返回用户的 Fitbit 旧版用户 ID 和 Google 用户 ID。 |
| 获取设备 | users.pairedDevices 返回已配对设备的列表 |
| 创建订阅 | projects.subscribers.subscriptions.create 手动创建订阅 |
| 删除订阅 | projects.subscribers.subscriptions.delete 删除订阅 |
| 获取订阅列表 | projects.subscribers.subscriptions.list 列出所有订阅 |