如何获取每周的Google Fit Rest API数据

问题描述

我正尝试在他们的documentation之后使用他们的REST Api从Google Fit中获取我的每周汇总步数,但点数据却变空了。我已经为访问令牌启用了读取位置和活动范围。我的代码:

import json
import requests

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

access_token = ""

headers = {
  "Authorization": "Bearer {}".format(access_token),"Content-Type": "application/json;encoding=utf-8"
  }

body = {
  "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
}


response = requests.post(api_url,data=json.dumps(body),headers=headers)

print(response.text)

解决方法

  "aggregateBy": [{
    "dataTypeName": "com.google.step_count.delta","dataSourceId": "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps"
  }],

您的aggregateBy同时指定数据类型名称和数据源ID;后者优先。因此,只有在estimated_steps流中包含服务器上的数据时,它才会返回数据。

我建议删除dataSourceId,然后将使用step_count.delta的默认数据源。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...