Sie können in Google Fit Ernährungsdaten hinzufügen, indem Sie eine Datenquelle erstellen und den Datentyp com.google.nutrition
verwenden. Jeder Datenpunkt steht für den Wert aller Nährstoffe, die in einer Mahlzeit oder einem Snack konsumiert werden. In diesem Beispiel wird gezeigt, wie du Nährwertdaten für jemanden hinzufügst, der eine Banane gegessen hat.
Datenquelle erstellen
Android
Erstellen Sie mit DataSource.Builder
eine neue Datenquelle. Beispiel: nutritionSource
.
val nutritionSource = DataSource.Builder()
.setDataType(DataType.TYPE_NUTRITION)
// ...
.build()
REST
Rufen Sie die REST API auf, um eine neue Datenquelle zu erstellen. Beispiel: NutritionSource
.
HTTP-Methode
POST
Anfrage-URL
https://www.googleapis.com/fitness/v1/users/me/dataSources
Anfragetext
{
"dataStreamName": "NutritionSource",
"type": "raw",
"application": {
"detailsUrl": "http://example.com",
"name": "My Example App",
"version": "1"
},
"dataType": {
"name": "com.google.nutrition",
}
}
Antwort
Wenn die Datenquelle erstellt wurde, erhalten Sie den HTTP-Antwortstatuscode 200 OK
. Der Antworttext enthält eine JSON-Darstellung der Datenquelle, einschließlich eines datasource.dataStreamId
-Attributs. Verwenden Sie diese ID als dataSourceId
, um Daten hinzuzufügen.
CURL-Befehl
$ 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
Ernährungsdaten hinzufügen
Android
In diesem Beispiel wird gezeigt, wie Sie mit der Datenquelle nutritionSource
einen neuen Datenpunkt erstellen und Ernährungsdaten für eine Banane hinzufügen.
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
In diesem Beispiel wird gezeigt, wie Sie mithilfe der Datenquelle NutritionSource
eine Reihe von Ernährungsdaten hinzufügen. Die Werte für den Ernährungsdatentyp sind Nährstoffe (eine Karte), Art der Mahlzeit (4 = 'snack') und das tatsächliche Lebensmittelelement (ein String).
HTTP-Methode
PATCH
Anfrage-URL
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023999000
Anfragetext
{ "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" } ] } ] }
Antwort
Wenn der Datenpunkt erfolgreich erstellt wurde, erhalten Sie den HTTP-Antwortstatuscode 200 OK
. Der Antworttext enthält eine JSON-Darstellung des Datasets.
CURL-Befehl
$ 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