إضافة بيانات التغذية

يمكنك إضافة بيانات التغذية إلى Google Fit من خلال إنشاء مصدر بيانات واستخدام نوع البيانات com.google.nutrition. تمثّل كل نقطة بيانات قيمة جميع العناصر الغذائية التي تم تناولها في وجبة أو وجبة خفيفة. يوضّح لك هذا المثال كيفية إضافة بيانات التغذية لشخص تناول موزة.

إنشاء مصدر بيانات

Android

استخدِم DataSource.Builder لإنشاء مصدر بيانات جديد. مثلاً: nutritionSource

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

REST

اتّصِل بواجهة REST API لإنشاء مصدر بيانات جديد. مثلاً: NutritionSource

طريقة HTTP

POST

عنوان URL للطلب

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

نص الطلب

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

الردّ

في حال إنشاء مصدر البيانات بنجاح، ستتلقّى رمز حالة استجابة HTTP 200 OK. يتضمّن نص الاستجابة تمثيلاً بتنسيق JSON لمصدر البيانات، بما في ذلك السمة datasource.dataStreamId. استخدِم هذا المعرّف كـ dataSourceId لإضافة البيانات.

أمر CURL

$ 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

إضافة بيانات التغذية

Android

يوضّح لك هذا المثال كيفية إنشاء نقطة بيانات جديدة وإضافة بيانات التغذية الخاصة بموزة باستخدام مصدر البيانات nutritionSource.

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

يوضّح لك هذا المثال كيفية إضافة مجموعة من بيانات التغذية باستخدام مصدر البيانات NutritionSource. قيم نوع بيانات التغذية هي العناصر الغذائية (خريطة) ونوع الوجبة (4 = "وجبة خفيفة") وصنف الطعام الفعلي (سلسلة).

طريقة HTTP

PATCH

عنوان URL للطلب

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

نص الطلب

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

الردّ

إذا تم إنشاء نقطة البيانات بنجاح، ستتلقّى رمز حالة استجابة HTTP 200 OK. يحتوي نص الاستجابة على تمثيل JSON لمجموعة البيانات.

أمر CURL

$ 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