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