Vous pouvez ajouter des données nutritionnelles dans 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 une collation. Cet exemple vous montre comment ajouter
des données nutritionnelles pour
une personne qui a mangé 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
Appeler 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",
}
}
Réponse
Si votre source de données a bien été créée, une erreur HTTP 200 OK
s'affiche.
code d'état de la réponse. Le corps de la réponse contient une représentation JSON de
la source de données, y compris une propriété datasource.dataStreamId
. Utiliser 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 valeurs nutritives
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 des données nutritionnelles à l'aide du
NutritionSource
source de données. Les valeurs du type de données nutritionnelles sont
les nutriments (sur une carte), le type de repas (4 = "en-cas") 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" } ] } ] }
Réponse
Si votre point de données a bien été créé, vous obtenez une requête HTTP 200 OK
code d'état de la réponse. 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