Google 适合 REST API "Unable to fetch DataSource for Dataset: xyz"

Google Fit REST API "Unable to fetch DataSource for Dataset: xyz"

我正在 OAuth 2.0 Playground 中测试一些东西,并尝试使用他们的 REST API

从 Google Fit 中获取数据和从中获取数据

我以前成功地做到了这一点,我只是没有写下我所做的..现在我回来使它成为一个合适的东西并且不能让它再次工作。

我可以通过仪表板访问 Google Fit 数据源。我可以从以下位置获取存在的数据源列表:

https://www.googleapis.com/fitness/v1/users/me/dataSources

那就是成功了。我还创建了我自己的流,它有一个名为

的浮点权重值
raw:com.google.weight:b6ac18c0:dten.sync

里面已经有数据了,我上次用的时候就放在那里了。我可以通过在以下

上请求 GET 来 select 所有这些数据
https://www.googleapis.com/fitness/v1/users/me/dataSources/raw:com.google.weight:b6ac18c0:dten.sync/datasets/0-1432193482000000000

它 returns 我上次输入的所有数据点 JSON

然后我尝试 PATCH 将我自己的数据添加到下面的数据中 URL

https://www.googleapis.com/fitness/v1/users/me/dataSources/raw:com.google.weight:b6ac18c0:dten.sync/datasets/1432193482000000000-1432193482000000000

以此为请求体

{
  "minStartTimeNs": "1421912895000000000",
  "maxEndTimeNs": "1432193482000000000",
  "dataSourceId": "raw:com.google.weight:b6ac18c0:dten.sync",
  "point": [
    {
      "startTimeNanos": "1421912895000000000",
      "modifiedTimeMillis": "1421912895000",
      "endTimeNanos": "1421912895000000000",
      "value": [
        {
          "fPVal": 89.1
        }
      ],
      "dataTypeName": "com.google.weight"
    }
  ]
}

但我回来了

{
  "error": {
    "code": 400, 
    "message": "Unable to fetch DataSource for Dataset: raw:com.google.weight:b6ac18c0:dten.sync", 
    "errors": [
      {
        "domain": "global", 
        "message": "Unable to fetch DataSource for Dataset: raw:com.google.weight:b6ac18c0:dten.sync", 
        "reason": "invalidArgument"
      }
    ]
  }
}

我在任何地方都找不到任何引用类似内容的人所以我在这里

另请注意,如果我拼错了我的来源,它会告诉我错误,因为它们与 URL 不匹配,如果我包含一个空的数据点列表,我会得到同样的错误。我迷路了所以我把它扔出去看看是否有人知道那是什么意思

提前致谢

编辑:我尝试更改我项目的整数代码的十六进制代码,但收到关于不受信任源的错误。所以我尝试制作一个按预期工作的新测试数据源。有点生气,但我想我会重新开始..

好吧,我很愚蠢,没有像这里所说的那样在仪表板右上角的 OAuth 设置中设置我自己的凭据。我忘记了那一点 -_- 现在我可以再次访问我自己的流并且它在流 ID 中显示我的整数项目 ID 而不是十六进制

https://developers.google.com/fit/rest/v1/get-started

现在我得到了无效的参数,但是..不管怎样 >_<

编辑 2:

无效参数是因为我有 fPVal 而不是 fpVal 并且不应该提交 modifiedTimeMillis 磨坊,显然