【问题标题】:Android fitness REST API missing data pointsAndroid Fitness REST API 缺少数据点
【发布时间】:2019-11-08 14:18:26
【问题描述】:

这是我正在做的事情: 我在手机上安装了 Google Fit 应用并收集了一些健身数据:

然后我转到OAuth 2.0 Playground 并尝试通过 REST 请求读取该数据:

方法:POST 网址:https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate 正文:

{
  "aggregateBy": [{
    "dataTypeName": "com.google.calories",
    "dataSourceId": "derived:com.google.calories.bmr:com.google.android.gms:merged"
  }],
  "bucketByTime": { "durationMillis": 86400000 },
  "startTimeMillis": 1547232519000,
  "endTimeMillis": 1547837319000
}

我期望得到的: 接下来 7 天的 7 个数据集,每个数据点都有一个数据点。预期值如下:

  • 1 月 12 日:0
  • 1 月 13 日:0
  • 1 月 14 日:1688
  • 1934 年 1 月 15 日
  • 1 月 16 日:844
  • 1 月 17 日:0
  • 1 月 18 日:857

我实际得到的是:

除 14 日以外的所有日期(当然开始和结束时间不同):

{
  "startTimeMillis": "1547578119000", 
  "endTimeMillis": "1547664519000", 
  "dataset": [
    {
      "dataSourceId":"derived:com.google.calories.bmr.summary:com.google.android.gms:aggregated", 
      "point": []
    }
  ]
}, 

1 月 14 日:

{
  "startTimeMillis": "1547491719000", 
  "endTimeMillis": "1547578119000", 
  "dataset": [
    {
      "dataSourceId": "derived:com.google.calories.bmr.summary:com.google.android.gms:aggregated", 
      "point": [
        {
          "startTimeNanos": "1547500395267000000", 
          "originDataSourceId": "derived:com.google.calories.bmr:com.google.android.gms:from_height&weight", 
          "endTimeNanos": "1547500402445000000", 
          "value": [
            {
              "mapVal": [], 
              "fpVal": 1688.25
            }, 
            {
              "mapVal": [], 
              "fpVal": 1688.25
            }, 
            {
              "mapVal": [], 
              "fpVal": 1688.25
            }
          ], 
          "dataTypeName": "com.google.calories.bmr.summary"
        }
      ]
    }
  ]
}, 

有谁知道为什么我对大多数括号没有任何价值,而我却为其中一个获得价值?为什么第 14 位的值是 3 倍?

(我也无法强制这些代码块正确格式化,对此深表歉意)

【问题讨论】:

  • 你能用小时对齐的垃圾箱来做吗?例如,您的开始时间戳是 2019-01-11T18:48:39+00:00 - 您可以尝试使用 2019-01-11T18:00:00+00:00 (或 01:00:00 - 我假设你是在中欧时间)? (它不应该被破坏到不接受任意时间;但我只是想排除这个原因)
  • 我刚试了一下,结果是一样的。我还尝试将开始和结束时间设置为 00:00,并将括号大小更改为 3600000(1 小时),但这些都不起作用。

标签: google-api google-fit


【解决方案1】:

输入当前日期和时间 2019 年 11 月 1 日:1572586200 所以“startTimeMillis”:“1572586200000” 2019 年 11 月 8 日:1573191000 所以“endTimeMillis”:“1573191000000”

将这两个放在请求正文中,它应该可以工作。

【讨论】:

  • 嗨,阿米特,欢迎来到 SO。您应该尝试使用反引号来格式化您的答案以包含代码(`` 以产生类似 endTimeMillis 的内容)。
  • 您的建议只是更改返回数据的时间段。我看不出它与问题有什么关系
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
相关资源
最近更新 更多