Besin Verileri Ekleme

Bir veri kaynağı oluşturup şunu kullanarak Google Fit'e besin verileri ekleyebilirsiniz: com.google.nutrition veri türünü seçin. Her veri noktası, ilgili öğenin bir yemekte veya atıştırmalıkta tüketilen tüm besin maddeleri. Bu örnekte, Besin verileri.

Veri kaynağı oluşturma

Android

Yeni bir veri kaynağı oluşturmak için DataSource.Builder öğesini 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 alırsınız yanıt durum kodu. Yanıt gövdesi, şunun JSON temsilini içerir: datasource.dataStreamId özelliği de dahil olmak üzere veri kaynağı. Bu kimliği kullan dataSourceId olarak belirleyin.

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

Beslenme verileri ekleniyor

Android

Bu örnekte, yeni bir veri noktasının nasıl oluşturulacağı ve besin değerinin nasıl ekleneceği gösterilmektedir nutritionSource veri kaynağını kullanarak bir muzla ilgili verileri görebilirsiniz.

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ğı. Beslenme veri türü için değerler: besin öğeleri (harita), öğün türü (4 = "atıştırmalık") ve asıl gıda maddesi (bir 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 bir 200 OK HTTP alırsınız yanıt durum kodu. Yanıt gövdesi, şunun JSON temsilini içerir: veri kümesi olabilir.

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