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