Sie können Google Fit Ernährungsdaten hinzufügen, indem Sie eine Datenquelle erstellen und
com.google.nutrition
-Datentyp. Jeder Datenpunkt steht für den Wert
aller Nährstoffe, die in einer Mahlzeit oder einem Snack zu sich genommen werden. In diesem Beispiel wird gezeigt, wie Sie
Nährwertdaten für jemanden, der eine Banane gegessen hat.
Datenquelle erstellen
Android
Verwenden Sie DataSource.Builder
, um eine neue Datenquelle zu erstellen. 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 eine HTTP-Benachrichtigung vom Typ 200 OK
.
Statuscode der Antwort. Der Antworttext enthält eine JSON-Darstellung von
Die Datenquelle, einschließlich der Property datasource.dataStreamId
. Diese ID verwenden
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 einen neuen Datenpunkt erstellen und
Daten für eine Banane mit der Datenquelle 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
Dieses Beispiel zeigt, wie Sie mithilfe der Funktion
Datenquelle „NutritionSource
“. Die Werte für den Ernährungsdatentyp sind
Nährstoffe (Karte), Art der Mahlzeit (4 = „Snack“) und das eigentliche Lebensmittel
(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 erstellt wurde, erhalten Sie eine HTTP-Meldung 200 OK
Statuscode der Antwort. Der Antworttext enthält eine JSON-Darstellung von
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