首页 > 解决方案 > 如何从 Google Fit 读取血糖数据?

问题描述

如果用户在其帐户中记录或同步了任何血糖数据,我正在尝试从 google fit 帐户获取血糖。

API,

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

身体

    {
      "aggregateBy": [{
           "dataTypeName": "com.google.blood_glucose",
           "dataSourceId": "derived:com.google.blood_glucose:com.google.android.gms:merged"
                      }],
      "bucketByTime": { "durationMillis": 86400000 },
      "startTimeMillis": 1578718800000, // jan 11 2010
      "endTimeMillis": 1580360400000 // jan 30 2020
}

我收到:

{
    "error": {
        "errors": [
            {
                "domain": "global",
                "reason": "forbidden",
                "message": "datasource not found or not readable: derived:com.google.blood_glucose:com.google.android.gms:delta"
            }
        ],
        "code": 403,
        "message": "datasource not found or not readable: derived:com.google.blood_glucose:com.google.android.gms:delta"
    }
}

如果用户在他们的 google fit 帐户中同步或记录了任何内容,有关如何读取血糖数据的任何建议?

标签: google-fit

解决方案


您无需同时指定数据类型名称和数据源 ID。实际上,如果您同时指定两者,则(当前)忽略数据类型名称。

如果指定数据源 ID,则该数据源必须存在;如果您指定数据类型名称,则使用该类型的“默认”数据源;但允许不存在(例如,如果用户从未实际写入过血糖数据)。

因此,将您的请求更改为:

{
  "aggregateBy": [{
       "dataTypeName": "com.google.blood_glucose",
                  }],
  "bucketByTime": { "durationMillis": 86400000 },
  "startTimeMillis": 1578718800000,
  "endTimeMillis": 1580360400000
}

Try it now


推荐阅读