Verzehrte Lebensmittel lesen

Android

Ihre App kann eine Liste der Lebensmittel abrufen, die innerhalb eines bestimmten Zeitraums gegessen wurden. Dazu erstellt sie eine Anfrage zum Lesen von Daten und fragt DataType.TYPE_NUTRITION ab, wie im folgenden Beispiel gezeigt:

val readRequest = DataReadRequest.Builder()
    .read(DataType.TYPE_NUTRITION)
    .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
    .build()

Weitere Informationen zum Lesen von Daten findest du unter Mit dem Fitnessverlauf arbeiten.

REST

Das Abrufen einer Liste der verzehrten Lebensmittel erfolgt über die REST API in drei Phasen:

  1. Rufen Sie eine Liste der Datenquellen ab, die für den Datentyp com.google.nutrition verfügbar sind. Wenn die Details der Datenquelle bereits bekannt sind, können diese direkt im nächsten Schritt verwendet werden.
  2. Eine Liste der Lebensmittel erstellen, die nacheinander aus jeder Datenquelle gegessen werden
  3. (Wenn mehrere Datenquellen vorhanden sind) kombinieren Sie die Listen mit Lebensmitteln in der Clientanwendung.

Eine Liste mit Lebensmitteldatenquellen abrufen

Da von jeder Datenquelle nur das datasource.dataStreamId erforderlich ist, können Sie wie hier gezeigt eine Feldmaske verwenden, um die Antwort auf dieses Attribut zu beschränken.

HTTP-Methode

GET

Anfrage-URL

https://www.googleapis.com/fitness/v1/users/me/dataSources?dataTypeName=com.google.nutrition&fields=dataSource(dataStreamId)

Antwort

Wenn der Vorgang erfolgreich war, wird der Statuscode 200 OK zurückgegeben. Der Antworttext enthält eine JSON-Liste. Jedes Element in der Liste entspricht einer Datenquelle.

Beispiel:

{
 "dataSource": [
  {
   "dataStreamId": "raw:com.google.nutrition:com.example.nutritionSource1:"
  },
  {
   "dataStreamId": "raw:com.google.nutrition:com.example.nutritionSource2:"
  }
 ]
}

CURL-Befehl

$ curl \
  'https://www.googleapis.com/fitness/v1/users/me/dataSources?dataTypeName=com.google.nutrition&fields=dataSource(dataStreamId)' \
      --header 'Authorization: Bearer ya29.yourtokenvalue' \
      --header 'Accept: application/json' \
      --compressed

Eine Liste der aufgenommenen Lebensmittel aus einer Datenquelle abrufen

Verwenden Sie wiederum die dataSource.dataStreamId aus jeder der Quellen in Schritt 1, um die Liste(n) der verzehrten Lebensmittel abzurufen.

datasetId ist der Beginn und das Ende des erforderlichen Zeitraums in Nanosekunden, wie in der Dataset-Ressource definiert.

Beispiel: 1546300800000000000-1546387200000000000 steht für den datasetId vom 1. Januar 2019 00:00:00 Uhr (UTC) bis zum 2. Januar 2019 00:00:00.

HTTP-Methode

GET

Anfrage-URL

https://www.googleapis.com/fitness/v1/users/me/dataSources/dataSource.dataStreamId/datasets/1546300800000000000-1546387200000000000?fields=point%2Fvalue%2FstringVal

Antwort

{
 "point": [
  {
   "value": [
    {},
    {},
    {
     "stringVal": "apple"
    }
   ]
  },
  {
   "value": [
    {},
    {},
    {
     "stringVal": "banana"
    }
   ]
  },
  {
   "value": [
    {},
    {},
    {
     "stringVal": "carrot"
    }
   ]
  }
 ]
}

CURL-Befehl

$ curl \
  'https://www.googleapis.com/fitness/v1/users/me/dataSources/dataSource.dataStreamId/datasets/157059699023000000-1575159699023999000?fields=point%2Fvalue%2FstringVal' \
      --header 'Authorization: Bearer ya29.yourtokenvalue' \
      --header 'Accept: application/json' \
      --compressed