Aggiungi dati nutrizionali

Puoi aggiungere dati relativi all'alimentazione a Google Fit creando un'origine dati e utilizzando il tipo di dati com.google.nutrition. Ogni punto dati rappresenta il valore di tutte le sostanze nutritive consumate in un pasto o uno spuntino. Questo esempio mostra come aggiungere dati nutrizionali di una persona che ha mangiato una banana.

crea un'origine dati

Android

Utilizza DataSource.Builder per creare una nuova origine dati. Ad esempio, nutritionSource.

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

REST

Chiama l'API REST per creare una nuova origine dati. Ad esempio, NutritionSource.

Metodo HTTP

POST

URL di richiesta

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

Corpo della richiesta

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

Risposta

Se l'origine dati è stata creata correttamente, riceverai un messaggio HTTP 200 OK codice di stato della risposta. Il corpo della risposta contiene una rappresentazione JSON l'origine dati, inclusa una proprietà datasource.dataStreamId. Utilizza questo ID come dataSourceId per aggiungere dati.

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

Aggiunta di dati nutrizionali

Android

Questo esempio mostra come creare un nuovo punto dati e aggiungere l'alimentazione per una banana, utilizzando l'origine dati 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

Questo esempio mostra come aggiungere una serie di dati relativi all'alimentazione utilizzando NutritionSource origine dati. I valori per il tipo di dati relativi all'alimentazione sono nutrienti (una mappa), tipo di pasto (4 = "snack") e l'alimento effettivo (una stringa).

Metodo HTTP

PATCH

URL di richiesta

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

Corpo della richiesta

    {
      "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"
            }
          ]
        }
      ]
    }

Risposta

Se il punto dati è stato creato correttamente, riceverai un messaggio HTTP 200 OK codice di stato della risposta. Il corpo della risposta contiene una rappresentazione JSON il set di dati.

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