API 规范

“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 的范围映射
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 的数据类型映射
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 方法
按日期或间隔获取(时间序列) 包含日期范围的 rollUpdailyRollUp 方法
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 列出所有订阅