Vous pouvez ajouter des données nutritionnelles à Google Fit en créant une source de données et en utilisant
le com.google.nutrition type de données. Chaque point de données représente la valeur de tous les nutriments consommés lors d'un repas ou d'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
Appelez l'API REST pour créer une source de données. 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 été créée, vous recevrez un 200 OK HTTP
code d'état de 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. 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 = "collation") 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 été créé, vous recevrez un 200 OK HTTP
code d'état de 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