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

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

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

Android

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

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

راحة

يمكنك الاتصال بواجهة برمجة تطبيقات REST لإنشاء مصدر بيانات جديد. مثلاً: 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()

راحة

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

طريقة 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