Escribir datos de glucemia

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.

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