앱에서
com.google.blood_glucose 데이터 유형에 써서 혈당 데이터를 기록할 수 있습니다. 이 데이터 유형에서 각 데이터 포인트는 단일 순간 혈당 측정값을 나타냅니다. 데이터 포인트에는 혈당 농도, 식사 및 수면 시간과의 관계, 측정된 표본의 소스 필드가 포함됩니다. 혈당 농도를 제외한 모든 필드는 선택사항입니다.
- 혈당 농도는 mmol/L 단위로 측정됩니다 (1mmol/L는 18mg/dL에 해당).
- 지정된 경우 식사 시간과의 관계는
FIELD_TEMPORAL_RELATION_TO_MEAL에 나열된 값 중 하나여야 합니다. - 식사 유형은
FIELD_MEAL_TYPE에 나열된 값 중 하나여야 합니다. 식사 유형을 알 수 없는 경우MEAL_TYPE_UNKNOWN을 사용합니다. - 지정된 경우 수면 시간과의 관계는
에 나열된 값 중 하나여야 합니다
FIELD_TEMPORAL_RELATION_TO_SLEEP. - 지정된 경우 혈당 표본 소스는
에 나열된 값 중 하나여야 합니다
FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE.
데이터 소스 만들기
Android
혈당 데이터 포인트를 쓰려면 다음 예와 같이 DataSource
의 TYPE_BLOOD_GLUCOSE를 만듭니다.
val bloodGlucoseSource = DataSource.Builder()
.setDataType(TYPE_BLOOD_GLUCOSE)
// ...
.build()
REST
혈당 데이터 포인트를 쓰려면 새 데이터 소스를 만듭니다.
HTTP 메소드
POST
요청 URL
https://www.googleapis.com/fitness/v1/users/me/dataSources
요청 본문
{
"dataStreamName": "BloodGlucose",
"type": "raw",
"application": {
"detailsUrl": "http://example.com",
"name": "My Example App",
"version": "1"
},
"dataType": {
"name": "com.google.blood_glucose"
}
}
응답
데이터 소스가 성공적으로 생성되면 응답은 200 OK 상태 코드입니다. 응답 본문에는 후속 요청의 데이터 소스 ID로 사용할 수 있는 datasource.dataStreamId 속성을 비롯하여 데이터 소스의 JSON 표현이 포함됩니다.
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
데이터 추가
Android
위에서 만든 소스에 데이터를 추가하려면 이 데이터 소스의 데이터 포인트를 만듭니다. 이 데이터 포인트는 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
이 예에서는 위에서 만든 데이터 소스를 사용하여 혈당 데이터를 추가하는 방법을 보여줍니다.
HTTP 메소드
PATCH
요청 URL
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000
요청 본문
명확히 하자면, 아래 표시된 JSON 본문은 건강 필드 상수의 사용을 보여주기 위해 주석으로 주석 처리되어 있습니다. 현재 Fit API는 주석을 삭제하지만 JSON은 주석을 공식적으로 지원하지 않으므로 코드에서 주석을 삭제하는 것이 좋습니다.
{
"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
}
]
}
]
}응답
혈당 데이터가 성공적으로 추가되면 응답은 200 OK 상태 코드입니다. 응답 본문에는 추가된 혈당 데이터의 JSON 표현이 포함됩니다.
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