Ajouter des données nutritionnelles

Vous pouvez ajouter des données nutritionnelles à Google Fit en créant une source de données et en utilisant le type de données com.google.nutrition. Chaque point de données représente la valeur de tous les nutriments consommés dans un repas ou un encas. Cet exemple vous montre comment ajouter des données nutritionnelles à une personne qui mange une banane.

Créer une source de données

Android

Utilisez DataSource.Builder pour créer une source de données. Exemple : nutritionSource.

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

REST

Appelez l'API REST pour créer une source de données. Par exemple, NutritionSource.

Méthode HTTP

POST

URL de la requête

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

Corps de la requête

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

Response (Réponse)

Si votre source de données a bien été créée, vous obtenez un code d'état de réponse HTTP 200 OK. Le corps de la réponse contient une représentation JSON de la source de données, y compris une propriété datasource.dataStreamId. Utilisez cet ID comme dataSourceId pour ajouter des données.

Commande 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

Ajouter des données nutritionnelles

Android

Cet exemple vous montre comment créer un point de données et ajouter des données nutritionnelles pour une banane à l'aide de la source de données 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

Cet exemple vous montre comment ajouter un ensemble de données nutritionnelles à l'aide de la source de données NutritionSource. Les valeurs du type de données nutritionnelles sont les nutriments (une carte), le type de repas (4 = &n39;snack') et l'aliment réel (une chaîne).

Méthode HTTP

PATCH

URL de la requête

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

Corps de la requête

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

Response (Réponse)

Si votre point de données a bien été créé, vous obtenez un code d'état de réponse HTTP 200 OK. Le corps de la réponse contient une représentation JSON de l'ensemble de données.

Commande 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