Google Fit REST API"无法为数据集获取DataSource:xyz"

时间:2015-05-23 13:51:01

标签: rest google-fit google-fit-sdk oauth2-playground

我正在测试OAuth 2.0 Playground中的一些内容,并试图使用他们的REST API将数据输入和输出Google Fit

我之前已经成功完成了这项工作,我只是没有写下我所做的事情。现在我已经回来使它成为一件正确的事情并且不能让它再次运作。

我可以通过信息中心访问Google Fit数据源。我可以从以下位置获取存在的dataSource列表:

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

这很成功。我还创建了自己的流,它有一个名为

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

它已有数据,我上次使用它时把它放在那里。我可以通过以下

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

它返回我上次输入的所有数据点为JSON

然后我尝试PATCH将我自己的数据添加到folliwng 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,如果我包含一个空的数据点列表,我会得到相同的错误。我很失落,所以我把它扔到那里,看看是否有人知道这意味着什么

提前致谢

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

1 个答案:

答案 0 :(得分:1)

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

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

现在我得到了无效的论据,但是......无论> _<

编辑2:

无效的参数是因为我有fPVal而不是fpVal而且不应该提交modifiedTimeMillis工厂,显然