API Google Fit добавляет несколько типов данных в зависимости от области действия

Я использую API Google Fit с несколькими пользовательскими областями. Как я могу добавить несколько типов данных для каждого источника. Если возможно, почему я не могу добавить это как источник данных.

{
   "dataStreamName":"MyDataSource",
   "type":"derived",
   "application":{
      "detailsUrl":"http://example.com",
      "name":"Foo Example App",
      "version":"1"
   },
   "dataType":[
      {
    //1st data type
         "name":"com.google.step_count.delta",
         "field":[
            {
               "name":"steps",
               "format":"int"
            }
         ]
      },
      {
    //2nd data type
         "name":"com.google.calories.bmr",
         "field":[
            {
               "name":"calories",
               "format":"float"
            }
         ]
      }
   ],
   "device":{
      "manufacturer":"Example Manufacturer",
      "model":"ExampleTablet",
      "type":"tablet",
      "uid":"1000001",
      "version":"1.0"
   }
}

И я получил ответ

{
    "error": {
        "code": 400,
        "message": "Invalid JSON payload received. Unknown name \"dataType\" at 'data_source': Proto field is not repeating, cannot start list.",
        "errors": [
            {
                "message": "Invalid JSON payload received. Unknown name \"dataType\" at 'data_source': Proto field is not repeating, cannot start list.",
                "reason": "invalid"
            }
        ],
        "status": "INVALID_ARGUMENT"
    }
}

Но когда я добавляю только одну такую ​​область

{
   "dataStreamName":"MyDataSource",
   "type":"derived",
   "application":{
      "detailsUrl":"http://example.com",
      "name":"Foo Example App",
      "version":"1"
   },
   "dataType":{
         "name":"com.google.step_count.delta",
         "field":[
            {
               "name":"steps",
               "format":"integer"
            }
         ]
      },
   "device":{
      "manufacturer":"Example Manufacturer",
      "model":"ExampleTablet",
      "type":"tablet",
      "uid":"1000001",
      "version":"1.0"
   }
}

Он возвращает мне 200, что является успешным. Я что-то пропустил или то, что пытаюсь сделать, возможно? Спасибо.

Справочник по API Google Fit https://developers.google.com/fit/rest/v1/reference/users/dataSources/create

1 ответ

Решение

Я считаю, что вложение, которое вы пытаетесь сделать, должно происходить на уровне dataField, а не на уровне dataType.

dataType.field[]

Я думаю, это потому, что я заметил, что 'field[]' - это коллекция, а dataType - нет.

Другие вопросы по тегам