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