Tu app puede registrar datos de glucemia si escribe en el tipo de datos com.google.blood_glucose
. En este tipo de datos, cada dato representa una única medición instantánea de glucemia. El dato contiene campos para la concentración de glucemia, relaciones temporales con las comidas y el sueño, y la fuente del espécimen que se midió. Todos los campos, excepto los de concentración de glucemia, son opcionales.
- La concentración de glucemia se mide en mmol/L (1 mmol/L es equivalente a 18 mg/dL).
- Si se especifica, la relación temporal con la comida debe tener uno de los valores que se enumeran en
FIELD_TEMPORAL_RELATION_TO_MEAL
. - El tipo de comida debe tener uno de los valores que aparecen en la lista
FIELD_MEAL_TYPE
. Si no se conoce el tipo de comida, usaMEAL_TYPE_UNKNOWN
. - Si se especifica, la relación temporal con el sueño debe tener uno de los valores que se enumeran en
FIELD_TEMPORAL_RELATION_TO_SLEEP
. - Si se especifica, la fuente de la muestra de glucemia debe tener uno de los valores que se indican en
FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE
.
Cómo crear una fuente de datos
Android
Para escribir un dato de glucemia, crea un DataSource
nuevo de TYPE_BLOOD_GLUCOSE
, como se muestra en el siguiente ejemplo:
val bloodGlucoseSource = DataSource.Builder()
.setDataType(TYPE_BLOOD_GLUCOSE)
// ...
.build()
REST
Para escribir un dato sobre la glucemia, crea una nueva fuente de datos.
Método HTTP
POST
Request URL (URL de solicitud)
https://www.googleapis.com/fitness/v1/users/me/dataSources
Cuerpo de la solicitud
{
"dataStreamName": "BloodGlucose",
"type": "raw",
"application": {
"detailsUrl": "http://example.com",
"name": "My Example App",
"version": "1"
},
"dataType": {
"name": "com.google.blood_glucose"
}
}
Respuesta
Si la fuente de datos se creó de forma correcta, la respuesta es un código de estado 200 OK
. El cuerpo de la respuesta contiene una representación JSON de la fuente de datos, incluida una propiedad datasource.dataStreamId
que puedes usar como ID de la fuente de datos para solicitudes posteriores.
Comando 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
Agrega datos
Android
Si deseas agregar datos a la fuente que creaste antes, crea un dato para esta fuente, que se puede insertar con la API de History:
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
En este ejemplo, se muestra cómo agregar datos de glucemia con la fuente de datos creada anteriormente.
Método HTTP
PATCH
Request URL (URL de solicitud)
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000
Cuerpo de la solicitud
Para mayor claridad, el cuerpo JSON que se muestra a continuación está anotado con comentarios para mostrar el uso de constantes de campo de estado. Si bien por el momento la API de Fit descartará comentarios, te recomendamos que los quites de tu código, ya que JSON no admite comentarios oficialmente.
{ "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 } ] } ] }
Respuesta
Si los datos de glucemia se agregan de forma correcta, la respuesta es un código de estado 200 OK
. El cuerpo de la respuesta contiene una representación JSON de los datos de glucemia que se agregaron.
Comando 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