Google Fit API Не удается добавить большинство областей

Я использую Google Fit REST API для нашего текущего проекта. Мы можем добавить некоторые источники данных, но есть некоторые, которые мы не можем добавить. Мы уже следили за документацией. Некоторые запросы возвращают такое сообщение об ошибке (мы даже пробовали на их игровой площадке OAuth)

"error": {
    "status": "INVALID_ARGUMENT", 
    "message": "Data type does not match well-known data type with the same name", 
    "code": 400, 
    "errors": [
      {
        "reason": "invalidArgument", 
        "message": "Data type does not match well-known data type with the same name", 
        "domain": "global"
      }
    ]
  }

То, что мы пытаемся добавить, - это этот источник данных, для которого мы уже разрешаем области разрешений

https://www.googleapis.com/auth/fitness.activity.read
https://www.googleapis.com/auth/fitness.activity.write
{
  "application": {
      "name": "PersonalPulse",
      "version": "1.0.0"
    },
    "dataType": {
      "name": "com.google.activity.exercise",
      "field": [
        {
          "name": "exercise",
          "format": "integer"
        },
        {
          "name": "repetitions",
          "format": "integer"
        },
        {
          "name": "resistance type",
          "format": "integer"
        },
        {
          "name": "resistance",
          "format": "floatPoint"
        },
        {
          "name": "duration",
          "format": "integer"
        }
      ]
    },
    "device": {
      "manufacturer": "browser",
      "model": "browser",
      "type": "unknown",
      "uid": "2",
      "version": "10"
    },
    "type": "derived"
}

Мы следовали инструкциям, основанным на документации здесь https://developers.google.com/fit/datatypes/activity#workout

Мы используем фреймворк PHP/Laravel для фитнес-API и cURL для http-запросов. Если у кого-то есть идея, почему мы получили ошибку, пожалуйста, помогите. Спасибо.

Вы также можете попробовать здесь на игровой площадке Google и вставить области https://developers.google.com/oauthplayground/


person draw134    schedule 31.07.2020    source источник


Ответы (1)


Первая проблема с вашим запросом заключается в том, что вы передаете exercise поле integer, но документация говорит, что вам нужно передать одну из перечисленного набора строк (я не знаю, почему там написано int, но если вы нажмете на Принятые значения, вы увидите, что это определенно не целые числа ...).

Однако было бы проще, если бы вы вообще не указывали поля. Просто укажите имя типа данных:

// ...
"dataType": {
  "name": "com.google.activity.exercise",
}
// ...

и правильные поля будут заполнены на бэкэнде и возвращены вам.

person Andy Turner    schedule 03.08.2020
comment
так какое должно быть правильное значение, сэр? мы даже пробовали back_extension но это не работает - person draw134; 06.08.2020
comment
Что такое back_extension? Кажется, вы спрашиваете о создании источника данных, а не о добавлении в него данных. - person Andy Turner; 06.08.2020
comment
мы даже попробовали все типы данных в документах, включая строку. до сих пор не работает - person draw134; 06.08.2020