首页 > 解决方案 > 用于 Google Fit REST 心率查询的数据源 ID 是什么?

问题描述

我正在尝试使用Google Fit REST API检索汇总的每日心率摘要数据,但我很挣扎,因为要么我遗漏了某些东西,要么文档似乎非常不完整。通过以下几个可用示例之一,我成功地检索了每日总步数:

请求网址

https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate

请求正文

{
  "aggregateBy": [{
    "dataTypeName": "com.google.step_count.delta",
    "dataSourceId": "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps"
  }],
  "bucketByTime": { "durationMillis": 86400000 },
  "startTimeMillis": 1438705622000,
  "endTimeMillis": 1439310422000
}

我找不到任何读取心率的例子,所以我试图修改这个心率。我找到了这个数据类型列表,它具有这种数据类型:com.google.heart_rate.summary但没有任何关于dataSourceId应该是什么的信息。我试着忽略它,但我得到了这个错误:

找不到默认数据源:com.google.heart_rate.summary

有人知道我需要为 dataSourceId 使用什么,或者有任何关于数据源的体面文档的链接吗?

标签: restgoogle-fitheartrategoogle-fit-api

解决方案


对于静息心率,我使用这个:

"derived:com.google.heart_rate.bpm:com.google.android.gms:resting_heart_rate<-merge_heart_rate_bpm"

对于心率或 BPM,我使用这个:

"derived:com.google.heart_rate.bpm:com.google.android.gms:merge_heart_rate_bpm"

为了完整起见,我在下面包含了用于各种阅读的数据源:

DATA_SOURCE = {
    "steps": "derived:com.google.step_count.delta:com.google.android.gms:merge_step_deltas",
    "dist": "derived:com.google.distance.delta:com.google.android.gms:from_steps<-merge_step_deltas",
    "bpm": "derived:com.google.heart_rate.bpm:com.google.android.gms:merge_heart_rate_bpm",
    "rhr": "derived:com.google.heart_rate.bpm:com.google.android.gms:resting_heart_rate<-merge_heart_rate_bpm",
    "sleep" : "derived:com.google.sleep.segment:com.google.android.gms:sleep_from_activity<-raw:com.google.activity.segment:com.heytap.wearable.health:stream_sleep",
    "cal" : "derived:com.google.calories.expended:com.google.android.gms:from_activities",
    "move": "derived:com.google.active_minutes:com.google.android.gms:from_steps<-estimated_steps",
    "points" : "derived:com.google.heart_minutes:com.google.android.gms:merge_heart_minutes",
    "weight" : "derived:com.google.weight:com.google.android.gms:merge_weight"
}

根据数据源,有时它会提供一个点数组。然后,您可以选择相应地获取数组中所有点的总和、平均值、中位数等。


推荐阅读