Withings API Body 示例

Withings API Body Sample

我正在尝试从此 Withings 端点取回数据:https://developer.withings.com/api-reference/#operation/measure-getmeas

但我尝试过的每一种组合都只是 returns:

状态body错误


503 无效参数

这是最近的 body,它不起作用:action=getmeas&meastype=meastype&meastypes=11&category=1&startdate=1641168000&enddate=1641254399

供参考:https://developer.withings.com/api-reference/#operation/measure-getmeas

根据您发布的内容,问题出在您的参数 meastype=meastype 上。如果你删除它那么它应该 运行 没问题。

假设您已按照程序获取访问令牌,您从 PowerShell 调用将如下所示:

Invoke-RestMethod -Method 'Post' -Headers @{ "Authorization" = "Bearer XXXXXXXXXXXXXXXXXX" } -Body "action=getmeas&meastypes=11&category=1&startdate=1641168000&enddate=1641254399" -Uri 'https://wbsapi.withings.net/measure'

这将 return 一个 JSON 结构,根据您 link 在问题中的文档,例如

{
  "status": 0,
  "body": {
    "updatetime": "string",
    "timezone": "string",
    "measuregrps": [
      {
        "grpid": 12,
        "attrib": 1,
        "date": 1594245600,
        "created": 1594246600,
        "category": 1594257200,
        "deviceid": "892359876fd8805ac45bab078c4828692f0276b1",
        "measures": [
          {
            "value": 65750,
            "type": 1,
            "unit": -3,
            "algo": 3425,
            "fm": 1,
            "fw": 1000
          }
        ],
        "comment": "A measurement comment"
      }
    ],
    "more": 0,
    "offset": 0
  }
}

如果您的“measuregrps”为空(如下图所示),则表示您选择的时间段内没有可用数据,因此您的设备未记录该参数或数据尚未同步到您的 Withings 帐户。

当我 运行 它时我得到了什么(我的设备不记录 HR):

status body
------ ----
     0 @{updatetime=1641470158; timezone=Europe/London; measuregrps=System.Object[]}

另一种选择是将 Windows 子系统用于 Linux 到 运行 curl 命令。你基本上得到了同样的东西:

curl --header "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXX" --data "action=getmeas&meastype=11&category=1&startdate=1609925332&enddate=1641461360" 'https://wbsapi.withings.net/measure'

给予

{
    "status":0,
    "body":{
        "updatetime":1641470640,
        "timezone":"Europe\/London",
        "measuregrps":[]
    }
}