Modifier les données sur la glycémie

Votre application peut enregistrer des données sur la glycémie en écrivant dans le type de données com.google.blood_glucose. Dans ce type de données, chaque point de données représente une seule lecture instantanée du glucose dans le sang. Le point de données contient des champs pour la glycémie, les relations temporelles avec les repas et le sommeil, ainsi que la source du spécimen mesuré. Tous les champs sont facultatifs, à l'exception de la concentration de la glycémie.

  • La concentration de la glycémie est mesurée en mmol/L (1 mmol/L équivaut à 18 mg/dL).
  • Si elle est spécifiée, la relation temporelle avec le repas doit avoir l'une des valeurs répertoriées dans FIELD_TEMPORAL_RELATION_TO_MEAL.
  • Le type de repas doit comporter l'une des valeurs indiquées dans FIELD_MEAL_TYPE. Si le type de repas n'est pas connu, utilisez MEAL_TYPE_UNKNOWN.
  • Si elle est spécifiée, la relation temporelle avec le sommeil doit avoir l'une des valeurs répertoriées dans FIELD_TEMPORAL_RELATION_TO_SLEEP.
  • Si elle est spécifiée, la source de spécimen de glycémie doit comporter l'une des valeurs répertoriées dans FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE.

Créer une source de données

Android

Pour écrire un point de données de glycémie, créez un nouvel DataSource de TYPE_BLOOD_GLUCOSE, comme illustré dans l'exemple suivant:

val bloodGlucoseSource = DataSource.Builder()
    .setDataType(TYPE_BLOOD_GLUCOSE)
    // ...
    .build()

REST

Pour écrire un point de données sur la glycémie, créez une source de données.

Méthode HTTP

POST

URL de la requête

https://www.googleapis.com/fitness/v1/users/me/dataSources

Corps de la requête

{
  "dataStreamName": "BloodGlucose",
  "type": "raw",
  "application": {
    "detailsUrl": "http://example.com",
    "name": "My Example App",
    "version": "1"
  },
  "dataType": {
    "name": "com.google.blood_glucose"
   }
}

Response (Réponse)

Si la source de données a bien été créée, la réponse est un code d'état 200 OK. Le corps de la réponse contient une représentation JSON de la source de données, y compris une propriété datasource.dataStreamId que vous pouvez utiliser comme ID de source de données pour les requêtes ultérieures.

Commande 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

Ajouter des données

Android

Pour ajouter des données à la source créée ci-dessus, créez un point de données pour cette source de données, qui peut être inséré à l'aide de l'API 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

Cet exemple montre comment ajouter des données sur la glycémie à l'aide de la source de données créée ci-dessus.

Méthode HTTP

PATCH

URL de la requête

https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000

Corps de la requête

Pour plus de clarté, le corps JSON affiché ci-dessous est annoté avec des commentaires, pour montrer l'utilisation de constantes de champ "health". Bien que l'API Fit supprime actuellement les commentaires, il est fortement recommandé de les supprimer de votre code, car JSON n'accepte pas officiellement les commentaires.

{
  "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
        }
      ]
    }
  ]
}

Response (Réponse)

Si les données concernant la glycémie ont bien été ajoutées, la réponse est un code d'état 200 OK. Le corps de la réponse contient une représentation JSON des données de glycémie qui ont été ajoutées.

Commande 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