【问题标题】:What data source ID to use for Google Fit REST heart rate query?用于 Google Fit REST 心率查询的数据源 ID 是什么?
【发布时间】:2020-11-22 16:42:14
【问题描述】:

我正在尝试使用 Google Fit REST API 检索汇总的每日心率摘要数据,但我很苦恼,因为要么我遗漏了某些东西,要么文档似乎非常不完整。通过关注one of the few available examples,我成功地检索了每日总步数:

请求网址

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
}

我找不到任何读取心率的示例,因此我正在尝试修改此心率。我发现this list of data types 具有这种数据类型:com.google.heart_rate.summary,但没有任何关于dataSourceId 应该是什么的信息。我尝试忽略它,但出现此错误:

未找到以下默认数据源:com.google.heart_rate.summary

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

【问题讨论】:

  • 不要同时设置dataTypeNamedataSourceId:设置特定的数据源ID将优先于设置数据类型。

标签: rest google-fit heartrate google-fit-api


【解决方案1】:

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

"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"
}

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

【讨论】:

    【解决方案2】:

    你可以list the data sources available给定的数据类型,例如:

    方法

    GET
    

    请求网址

    https://www.googleapis.com/fitness/v1/users/me/dataSources?dataTypeName=com.google.heart_rate.summary
    

    根据您要实现的目标,您可能会找到 com.google.heart_rate.summarycom.google.heart_rate.bpm 的来源以满足您的需求,包括合并的来源。

    【讨论】:

    • 是的,这似乎是找出答案的唯一方法——我不明白为什么某处没有记录在案的列表。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多