アプリは、
com.google.blood_glucose データタイプに書き込むことで血糖値データを記録できます。このデータタイプでは、各データポイントは 1 回の瞬時の血糖値の読み取りを表します。データポイントには、血糖値濃度、食事や睡眠との時間的関係、測定された検体の出所のフィールドが含まれます。血糖値濃度以外のすべてのフィールドは省略可能です。
- 血糖値濃度は mmol/L で測定します(1 mmol/L は 18 mg/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 ステータス コードになります。レスポンスの本文には、データソースの JSON 表現が含まれます。これには、後続のリクエストのデータソース ID として使用できる datasource.dataStreamId プロパティが含まれます。
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