شما میتوانید با ایجاد یک منبع داده و استفاده از نوع داده com.google.nutrition دادههای تغذیهای را به Google Fit اضافه کنید. هر نقطه داده، ارزش تمام مواد مغذی مصرف شده در یک وعده غذایی یا میان وعده را نشان میدهد. این مثال به شما نشان میدهد که چگونه دادههای تغذیهای را برای کسی که موز خورده است، اضافه کنید.
ایجاد منبع داده
اندروید
DataSource.Builder برای ایجاد یک منبع داده جدید استفاده کنید. برای مثال، nutritionSource .
val nutritionSource = DataSource.Builder()
.setDataType(DataType.TYPE_NUTRITION)
// ...
.build()
استراحت
برای ایجاد یک منبع داده جدید، REST API را فراخوانی کنید. برای مثال، NutritionSource .
روش HTTP
POST
درخواست آدرس اینترنتی
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
اضافه کردن دادههای تغذیهای
اندروید
این مثال به شما نشان میدهد که چگونه با استفاده از منبع داده 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 = 'میان وعده') و خود ماده غذایی (یک رشته).
روش HTTP
PATCH
درخواست آدرس اینترنتی
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