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

يمكنك إضافة بيانات التغذية إلى 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