添加营养数据响应 - invalidArgument“不匹配的值计数”

问题描述 投票:0回答:1

我正在使用 Google Fit API 添加营养数据,并遵循他们的添加营养数据指南

我正在使用以下有效负载发出 PATCH 请求:

{
  "minStartTimeNs": 1624323600000000000,
  "maxEndTimeNs": 1624327200000000000,
  "dataSourceId": "my-datasource-id",
  "point": [
    {
      "startTimeNanos": 1624323600000000000,
      "endTimeNanos": 1624327200000000000,
      "dataTypeName": "com.google.nutrition",
      "value": [
        {
          "mapVal": [
            {
              "key": "calories",
              "value": {
                "fpVal": 456.7
              }
            },
            {
              "key": "fat.total",
              "value": {
                "fpVal": 20.7
              }
            },
            {
              "key": "fat.saturated",
              "value": {
                "fpVal": 11.3
              }
            },
            {
              "key": "fat.polyunsaturated",
              "value": {
                "fpVal": 0
              }
            },
            {
              "key": "fat.monounsaturated",
              "value": {
                "fpVal": 0
              }
            },
            {
              "key": "fat.trans",
              "value": {
                "fpVal": 0
              }
            },
            {
              "key": "cholesterol",
              "value": {
                "fpVal": 90
              }
            },
            {
              "key": "sodium",
              "value": {
                "fpVal": 753.3
              }
            },
            {
              "key": "potassium",
              "value": {
                "fpVal": 0
              }
            },
            {
              "key": "carbs.total",
              "value": {
                "fpVal": 32
              }
            },
            {
              "key": "dietary_fiber",
              "value": {
                "fpVal": 2.7
              }
            },
            {
              "key": "sugar",
              "value": {
                "fpVal": 2
              }
            },
            {
              "key": "protein",
              "value": {
                "fpVal": 30.7
              }
            }
          ]
        },
        {
          "intVal": 4
        }
      ]
    }
  ]
}

这将返回 400 错误响应,内容如下:

{
  "error": {
    "code": 400,
    "message": "Mismatched value count: com.google.nutrition [2021-06-22T01:00:00Z - 2021-06-22T02:00:00Z] [{calories:456.7, fat.total:20.7, fat.saturated:11.3, fat.polyunsaturated:0.0, fat.monounsaturated:0.0, fat.trans:0.0, cholesterol:90.0, sodium:753.3, potassium:0.0, carbs.total:32.0, dietary_fiber:2.7, sugar:2.0, protein:30.7},4] raw:my-datasource-id",
    "errors": [
      {
        "message": "Mismatched value count: com.google.nutrition [2021-06-22T01:00:00Z - 2021-06-22T02:00:00Z] [{calories:456.7, fat.total:20.7, fat.saturated:11.3, fat.polyunsaturated:0.0, fat.monounsaturated:0.0, fat.trans:0.0, cholesterol:90.0, sodium:753.3, potassium:0.0, carbs.total:32.0, dietary_fiber:2.7, sugar:2.0, protein:30.7},4] raw:my-datasource-id",
        "domain": "global",
        "reason": "invalidArgument"
      }
    ],
    "status": "INVALID_ARGUMENT"
  }
}

这是什么意思以及如何纠正?我似乎没有找到关于此错误的任何文档。

google-fit google-fit-api
1个回答
0
投票

食品项目需要包含在请求正文中。在指南中,这被列为:

{
    "strVal": "banana"
}

包含此内容会使请求成功,即使响应中未返回此值并且营养数据类型页面说:

膳食类型和食品项目字段之一或全部为必填项

© www.soinside.com 2019 - 2024. All rights reserved.