Agregar datos nutricionales

Para agregar datos nutricionales a Google Fit, crea una fuente de datos y usa el tipo de datos com.google.nutrition. Cada dato representa el valor de todos los nutrientes consumidos en una comida o bocadillo. En este ejemplo, se muestra cómo agregar los datos nutricionales de alguien que ha comido una banana.

Cree una fuente de datos

Android

Usa DataSource.Builder para crear una nueva fuente de datos. Por ejemplo, nutritionSource

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    // ...
    .build()

REST

Llama a la API de REST para crear una nueva fuente de datos. Por ejemplo, NutritionSource.

Método HTTP

POST

Request URL (URL de solicitud)

https://www.googleapis.com/fitness/v1/users/me/dataSources

Cuerpo de la solicitud

{
  "dataStreamName": "NutritionSource",
  "type": "raw",
  "application": {
    "detailsUrl": "http://example.com",
    "name": "My Example App",
    "version": "1"
  },
  "dataType": {
    "name": "com.google.nutrition",
   }
}

Respuesta

Si tu fuente de datos se creó correctamente, obtendrás un código HTTP 200 OK. el código de estado de respuesta. El cuerpo de la respuesta contiene una representación JSON de la fuente de datos, incluida una propiedad datasource.dataStreamId Usar este ID como dataSourceId para agregar datos.

Comando CURL

$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request POST \
--header "Content-Type: application/json;encoding=utf-8" --data @nutrition-ds.json \
https://www.googleapis.com/fitness/v1/users/me/dataSources

Agregar datos de nutrición

Android

En este ejemplo, se muestra cómo crear un nuevo punto de datos y agregar datos nutricionales datos de una banana con la fuente de datos nutritionSource.

val nutrients = mapOf(
    Field.NUTRIENT_TOTAL_FAT to 0.4f,
    Field.NUTRIENT_SODIUM to 1f,
    Field.NUTRIENT_SATURATED_FAT to 0.1f,
    Field.NUTRIENT_PROTEIN to 1.3f,
    Field.NUTRIENT_TOTAL_CARBS to 27.0f,
    Field.NUTRIENT_CHOLESTEROL to 0.0f,
    Field.NUTRIENT_CALORIES to 105.0f,
    Field.NUTRIENT_SUGAR to 14.0f,
    Field.NUTRIENT_DIETARY_FIBER to 3.1f,
    Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
    .setTimestamp(timestamp, TimeUnit.MILLISECONDS)
    .setField(Field.FIELD_FOOD_ITEM, "banana")
    .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
    .setField(Field.FIELD_NUTRIENTS, nutrients)
    .build()

REST

Este ejemplo te muestra cómo agregar un conjunto de datos nutricionales usando el Fuente de datos de NutritionSource. Los valores para el tipo de datos nutricionales son los nutrientes (un mapa), el tipo de comida (4 = 'bocadillo') y el alimento real. (una cadena).

Método HTTP

PATCH

Request URL (URL de solicitud)

  https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023999000
 

Cuerpo de la solicitud

    {
      "minStartTimeNs": 1574159699023000000,
      "maxEndTimeNs": 1574159699023999000,
      "dataSourceId": "datasource.dataStreamId",
      "point": [
        {
          "startTimeNanos": 1574159699023000000,
          "endTimeNanos": 1574159699023999000,
          "dataTypeName": "com.google.nutrition",
          "value": [
            {
              "mapVal": [
              {
                "key": "fat.total",
                "value": {
                  "fpVal": 0.4
                }
              },
              {
                "key": "sodium",
                "value": {
                  "fpVal": 1.0
                }
              },
              {
                "key": "fat.saturated",
                "value": {
                  "fpVal": 0.1
                }
              },
              {
                "key": "protein",
                "value": {
                  "fpVal": 1.3
                }
              },
              {
                "key": "carbs.total",
                "value": {
                  "fpVal": 27.0
                }
              },
              {
                "key": "cholesterol",
                "value": {
                  "fpVal": 0.0
                }
              },
              {
                "key": "calories",
                "value": {
                  "fpVal": 105.0
                }
              },
              {
                "key": "sugar",
                "value": {
                  "fpVal": 14.0
                }
              },
              {
                "key": "dietary_fiber",
                "value": {
                  "fpVal": 3.1
                }
              },
              {
                "key": "potassium",
                "value": {
                  "fpVal": 422.0
                }
              }
             ]
            },
            {
              "intVal": 4
            },
            {
              "strVal": "banana"
            }
          ]
        }
      ]
    }

Respuesta

Si tu dato se creó correctamente, obtendrás un código HTTP 200 OK. el código de estado de respuesta. El cuerpo de la respuesta contiene una representación JSON de el conjunto de datos.

Comando CURL

$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request PATCH \
--header "Content-Type: application/json;encoding=utf-8" --data @nutrition-data.json \
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023999000