Aplikacja może zapisywać dane o glukozie we krwi, zapisując dane typu com.google.blood_glucose
. W tym typie danych każdy punkt danych reprezentuje jeden chwilowy odczyt poziomu glukozy we krwi. Punkt danych zawiera pola dotyczące stężenia glukozy we krwi, czasowych relacji z posiłkami i snem oraz źródła zmierzonej próbki. Wszystkie pola oprócz stężenia glukozy
we krwi są opcjonalne.
- Stężenie glukozy we krwi jest mierzone w mmol/L (1 mmol/l to odpowiednik 18 mg/dl).
- Jeśli jest określony, relacja czasowa z posiłkiem musi mieć jedną z wartości wymienionych w polu
FIELD_TEMPORAL_RELATION_TO_MEAL
. - Typ posiłku musi mieć jedną z wartości wymienionych w polu
FIELD_MEAL_TYPE
. Jeśli rodzaj posiłku jest nieznany, użyjMEAL_TYPE_UNKNOWN
. - Jeśli jest określony, stosunek czasowy do snu musi mieć jedną z wartości wymienionych w
FIELD_TEMPORAL_RELATION_TO_SLEEP
. - Jeśli źródło krwi do pomiaru glukozy we krwi musi mieć jedną z wartości wymienionych w polu
FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE
, musi mieć jedną z tych wartości.
Tworzenie źródła danych
Android
Aby zapisać punkt danych o glukozie we krwi, utwórz nowy element DataSource
z TYPE_BLOOD_GLUCOSE
, jak pokazano w tym przykładzie:
val bloodGlucoseSource = DataSource.Builder()
.setDataType(TYPE_BLOOD_GLUCOSE)
// ...
.build()
REST
Aby zapisać punkt danych o glukozie we krwi, utwórz nowe źródło danych.
Metoda HTTP
POST
URL żądania
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, odpowiedź będzie kodem stanu 200 OK
. Treść odpowiedzi zawiera reprezentację źródła danych w formacie JSON, w tym właściwość datasource.dataStreamId
, której możesz użyć 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 wyżej źródła, utwórz dla tego źródła danych punkt danych, który można 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 o glukozie we krwi za pomocą źródła danych utworzonego powyżej.
Metoda HTTP
PATCH
URL żądania
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000
Treść żądania
Dla jasności poniżej widoczna jest treść JSON oznaczona komentarzami, które pokazują korzystanie ze stałych pól dotyczących stanu zdrowia. Chociaż interfejs Fit API obecnie pomija 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 o glukozie we krwi zostaną dodane, odpowiedź będzie miała kod stanu 200 OK
. Treść odpowiedzi zawiera dodane dane glukozy we krwi w formacie JSON.
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