Zapisz dane dotyczące glukozy we krwi

Aplikacja może rejestrować dane dotyczące glukozy we krwi, zapisywać je w typie danych com.google.blood_glucose. W tego typu danych każdy punkt danych reprezentuje pojedynczy natychmiastowy glukozę we krwi. Punkt danych zawiera pola do stężenia glukozy, czasowe zależności od posiłków i snu oraz źródło zmierzonego badania. Wszystkie pola oprócz stężenia glukozy we krwi są opcjonalne.

Utwórz źródło danych

Android

Aby zapisać punkt danych o glukozie we krwi, utwórz nowy element DataSource z TYPE_BLOOD_GLUCOSE, jak pokazano w następnym przykładzie:

val bloodGlucoseSource = DataSource.Builder()
    .setDataType(TYPE_BLOOD_GLUCOSE)
    // ...
    .build()

REST

Aby zapisać punkt danych o stężeniu glukozy we krwi, utwórz nowe źródło danych.

Metoda HTTP

POST

URL prośby

https://www.googleapis.com/fitness/v1/users/me/dataSources

Treść żądania

{
  "dataStreamName": "BloodGlucose",
  "type": "raw",
  "application": {
    "detailsUrl": "http://example.com",
    "name": "My Example App",
    "version": "1"
  },
  "dataType": {
    "name": "com.google.blood_glucose"
   }
}

Odpowiedź

Jeśli źródło danych zostanie utworzone, odpowiedzią będzie kod stanu 200 OK. Treść odpowiedzi zawiera kod JSON reprezentujący źródło danych, w tym właściwość datasource.dataStreamId, której możesz używać jako identyfikatora źródła danych w kolejnych żądaniach.

Polecenie CURL

$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request POST \
  --header "Content-Type: application/json;encoding=utf-8" --data @blood-glucose-ds.json \
  https://www.googleapis.com/fitness/v1/users/me/dataSources

Dodawanie danych

Android

Aby dodać dane do utworzonego wcześniej źródła, utwórz dla niego punkt danych, który możesz wstawić za pomocą interfejsu History API:

val bloodGlucose = DataPoint.builder(bloodGlucoseSource)
    .setTimestamp(timestamp, TimeUnit.MILLISECONDS)
    .setField(FIELD_BLOOD_GLUCOSE_LEVEL, 5.0f) // 90 mg/dL
    .setField(FIELD_TEMPORAL_RELATION_TO_MEAL, FIELD_TEMPORAL_RELATION_TO_MEAL_BEFORE_MEAL)
    .setField(FIELD_MEAL_TYPE, MEAL_TYPE_BREAKFAST)
    .setField(FIELD_TEMPORAL_RELATION_TO_SLEEP, TEMPORAL_RELATION_TO_SLEEP_ON_WAKING)
    .setField(FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE, BLOOD_GLUCOSE_SPECIMEN_SOURCE_CAPILLARY_BLOOD)
    .build()

REST

Ten przykład pokazuje dodawanie danych dotyczących glukozy we źródle danych utworzonych powyżej.

Metoda HTTP

PATCH

URL prośby

https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000

Treść żądania

Dla ułatwienia pokazujemy poniżej treść JSON z adnotacjami, które pokazują użycie stałych pól stanu. Chociaż interfejs Fit API będzie teraz usuwać komentarze, zdecydowanie zalecamy usunięcie ich z kodu, ponieważ JSON nie obsługuje oficjalnie komentarzy.

{
  "minStartTimeNs": 1574159699023000000,
  "maxEndTimeNs": 1574159699023000000,
  "dataSourceId": "datasource.dataStreamId",
  "point": [
    {
      "startTimeNanos": 1574159699023000000,
      "endTimeNanos": 1574159699023000000,
      "dataTypeName": "com.google.blood_glucose",
      "value": [
        {
          // Blood glucose level, 90 mg/dL
          "fpVal": 5.0
        },
        {
          // FIELD_TEMPORAL_RELATION_TO_MEAL_BEFORE_MEAL
          "intVal": 3
        },
        {
          // MEAL_TYPE_BREAKFAST
          "intVal": 1
        },
        {
          // TEMPORAL_RELATION_TO_SLEEP_ON_WAKING
          "intVal": 3
        },
        {
          // BLOOD_GLUCOSE_SPECIMEN_SOURCE_CAPILLARY_BLOOD
          "intVal": 2
        }
      ]
    }
  ]
}

Odpowiedź

Jeśli dane dotyczące poziomu glukozy we krwi zostaną dodane, odpowiedzią będzie kod stanu 200 OK. Treść odpowiedzi zawiera dodaną do pliku JSON reprezentację danych dotyczących glukozy we krwi.

Polecenie CURL

$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request PATCH \
    --header "Content-Type: application/json;encoding=utf-8" --data @blood-glucose-data.json \
    https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000