Besin Verileri Ekleme

Veri kaynağı oluşturarak ve com.google.nutrition veri türünü kullanarak Google Fit'e beslenme verileri ekleyebilirsiniz. Her veri noktası, bir öğünde veya atıştırmalıkta tüketilen tüm besinlerin değerini gösterir. Bu örnekte, muz yiyen birinin beslenme verilerini nasıl ekleyeceğiniz gösterilmektedir.

Veri kaynağı oluşturma

Android

Yeni bir veri kaynağı oluşturmak için DataSource.Builder simgesini kullanın. Örneğin, nutritionSource.

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    // ...
    .build()

REST

Yeni bir veri kaynağı oluşturmak için REST API'yi çağırın. Örneğin, NutritionSource.

HTTP yöntemi

POST

İstek URL'si

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

İstek metni

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

Yanıt

Veri kaynağınız başarıyla oluşturulduysa 200 OK HTTP yanıt durum kodu alırsınız. Yanıt gövdesinde, datasource.dataStreamId özelliği de dahil olmak üzere veri kaynağının JSON gösterimi bulunur. Veri eklemek için bu kimliği dataSourceId olarak kullanın.

CURL komutu

$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request POST \
--header "Content-Type: application/json;encoding=utf-8" --data @nutrition-ds.json \
https://www.googleapis.com/fitness/v1/users/me/dataSources

Besin verileri ekleme

Android

Bu örnekte, nutritionSource veri kaynağını kullanarak yeni bir veri noktası oluşturma ve bir muz için besin verileri ekleme işlemi gösterilmektedir.

val nutrients = mapOf(
    Field.NUTRIENT_TOTAL_FAT to 0.4f,
    Field.NUTRIENT_SODIUM to 1f,
    Field.NUTRIENT_SATURATED_FAT to 0.1f,
    Field.NUTRIENT_PROTEIN to 1.3f,
    Field.NUTRIENT_TOTAL_CARBS to 27.0f,
    Field.NUTRIENT_CHOLESTEROL to 0.0f,
    Field.NUTRIENT_CALORIES to 105.0f,
    Field.NUTRIENT_SUGAR to 14.0f,
    Field.NUTRIENT_DIETARY_FIBER to 3.1f,
    Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
    .setTimestamp(timestamp, TimeUnit.MILLISECONDS)
    .setField(Field.FIELD_FOOD_ITEM, "banana")
    .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
    .setField(Field.FIELD_NUTRIENTS, nutrients)
    .build()

REST

Bu örnekte, NutritionSource veri kaynağını kullanarak bir grup besin verisinin nasıl ekleneceği gösterilmektedir. Besin veri türünün değerleri; besinler (harita), öğün türü (4 = "atıştırmalık") ve gerçek gıda maddesidir (dize).

HTTP yöntemi

PATCH

İstek URL'si

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

İstek metni

    {
      "minStartTimeNs": 1574159699023000000,
      "maxEndTimeNs": 1574159699023999000,
      "dataSourceId": "datasource.dataStreamId",
      "point": [
        {
          "startTimeNanos": 1574159699023000000,
          "endTimeNanos": 1574159699023999000,
          "dataTypeName": "com.google.nutrition",
          "value": [
            {
              "mapVal": [
              {
                "key": "fat.total",
                "value": {
                  "fpVal": 0.4
                }
              },
              {
                "key": "sodium",
                "value": {
                  "fpVal": 1.0
                }
              },
              {
                "key": "fat.saturated",
                "value": {
                  "fpVal": 0.1
                }
              },
              {
                "key": "protein",
                "value": {
                  "fpVal": 1.3
                }
              },
              {
                "key": "carbs.total",
                "value": {
                  "fpVal": 27.0
                }
              },
              {
                "key": "cholesterol",
                "value": {
                  "fpVal": 0.0
                }
              },
              {
                "key": "calories",
                "value": {
                  "fpVal": 105.0
                }
              },
              {
                "key": "sugar",
                "value": {
                  "fpVal": 14.0
                }
              },
              {
                "key": "dietary_fiber",
                "value": {
                  "fpVal": 3.1
                }
              },
              {
                "key": "potassium",
                "value": {
                  "fpVal": 422.0
                }
              }
             ]
            },
            {
              "intVal": 4
            },
            {
              "strVal": "banana"
            }
          ]
        }
      ]
    }

Yanıt

Veri noktanız başarıyla oluşturulduysa 200 OK HTTP yanıt durum kodu alırsınız. Yanıt gövdesi, veri kümesinin JSON gösterimini içerir.

CURL komutu

$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request PATCH \
--header "Content-Type: application/json;encoding=utf-8" --data @nutrition-data.json \
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023999000