【问题标题】:Withings API Body SampleWithings API 正文示例
【发布时间】:2022-01-05 17:38:13
【问题描述】:

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

但是我尝试过的每一种组合都会简单地返回:

状态正文错误


503 无效参数

这是不工作的最新正文:action=getmeas&meastype=meastype&meastypes=11&category=1&startdate=1641168000&enddate=1641254399

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

【问题讨论】:

  • 你是如何调用 API 你是使用 curl 还是 PHP 或类似的东西?
  • 我正在使用 PowerShell。
  • 您能否发布您在 PowerShell 中运行的命令(显然您的访问令牌被隐藏了)。 TBH,我自己尝试了一个请求,我从服务器收到了 2554 Not Implemented 响应,根据 Withings 的文档,这意味着该服务不存在!
  • 我的设备很可能没有收集 HR 数据,所以这可能是响应的原因。但是,它正在接受我的 HTTP 消息,所以我想无论我在做什么与您不同,这意味着我至少得到了正确格式化的参数。
  • 好的,当我切换到使用 WSL 中的 curl 命令时,我得到了很好的数据,所以至少他们的示例可以工作。

标签: api withings


【解决方案1】:

根据您发布的内容,问题在于您的参数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'

这将根据您在问题中链接到的文档返回一个 JSON 结构,例如

{
  "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帐户。

我运行它时得到什么(我的设备没有记录心率):

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

另一个选择是使用适用于 Linux 的 Windows 子系统来运行 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":[]
    }
}

【讨论】:

  • 非常感谢!
猜你喜欢
  • 2013-12-05
  • 1970-01-01
  • 1970-01-01
  • 2014-02-05
  • 2013-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
相关资源
最近更新 更多