Nährwertdaten hinzufügen

Sie können 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 bei einer Mahlzeit oder einem Snack aufgenommen wurden. In diesem Beispiel wird gezeigt, wie Sie Ernährungsdaten für eine Person hinzufügen, die 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 Ihre Datenquelle erfolgreich erstellt wurde, erhalten Sie den HTTP-Antwortstatuscode 200 OK. Der Antworttext enthält eine JSON-Darstellung der Datenquelle, einschließlich des Attributs datasource.dataStreamId. 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 einen neuen Datenpunkt erstellen und Ernährungsdaten für eine Banane über die Datenquelle nutritionSource 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 Map), Mahlzeitentyp (4 = „Snack“) und das tatsächliche 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 Ihr 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