1

我想将我的心率数据存储在 Google Fit 上。通过此页面,我可以尝试 API:https ://developers.google.com/fit/rest/v1/reference/users/dataSources/datasets/get?apix=true 并工作,因为 json 结果是:

{
  "minStartTimeNs": "1607036400000000000",
  "maxEndTimeNs": "1607122800000000000",
  "dataSourceId": "raw:com.google.heart_rate.bpm:AA:62:2a5297f4:Notify for Amazfit - heart rate",
  "point": [
    {
      "startTimeNanos": "1607036509703000000",
      "endTimeNanos": "1607036509703000000",
      "dataTypeName": "com.google.heart_rate.bpm",
      "value": [
        {
          "fpVal": 46,
          "mapVal": []
        }
      ],
      "modifiedTimeMillis": "1607076710847"
    },
...
...
...

如果我单击 javascript 选项卡,它会生成只能使用 API_KEY 和 CLIENT_ID 修改的代码,但如果我运行它,结果是:

minStartTimeNs  "1607036400000000000"
maxEndTimeNs    "1607122800000000000"
dataSourceId    "raw:com.google.heart_rate.bpm:com.mc.amazfit1:Amazfit:Amazfit Bip Watch:97f19a4a:Notify for Amazfit - heart rate"
point   []

“点”数组为空。没有任何错误,它不会告诉我,我没有访问权限,或者范围错误,它只是空的。即使使用 firefox 调试器查看 ajax 调用也是相同的,只是访问令牌发生了变化。我能怎么做?谢谢。

4

1 回答 1

0

我看到您直接使用设备的数据源(Amazfit Bip 手表),而不是派生的Google Fit 数据源。当我尝试访问设备的数据源时,我也没有看到任何数据返回。经过多次试验和错误,我最好从派生源中获取它,示例如下。

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

显然,我看到这种情况发生的唯一其他时间(点 [])是在该时间范围内没有数据时,即 datasetId(开始-结束)。“心点”和“活动时间”很常见。但我认为心率数据不会出现这种情况(除非您没有佩戴手表)。

于 2020-12-15T21:43:06.990 回答