Google Health API انواع داده را برای ردیابی تغذیه و آبرسانی کاربر ارائه میدهد. این انواع به شما امکان میدهند وعدههای غذایی را ثبت کنید، به غذاها در پایگاه داده غذا ارجاع دهید، مقدار مواد مغذی را پیگیری کنید، و مصرف مایعات را ثبت کنید.
انواع دادههای پشتیبانیشده
| نوع داده | عملیات دردسترس |
حوزه |
|---|---|---|
|
غذا
|
فهرست، دریافت | .nutrition.readonly.nutrition.writeonly |
|
واحد اندازهگیری غذا
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
نوع گزارش: غذا
دستگاههای سازگار
|
فهرست، دریافت | .nutrition.readonly.nutrition.writeonly |
|
گزارش آبرسانی
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
گزارش تغذیه
dataType:
nutrition-logfilter parameter: nutrition_log
نوع ضبط: جلسه
دستگاههای سازگار
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
گزارش تغذیه
«گزارش تغذیه» نشاندهنده غذایی است که کاربر ثبت کرده است. دو روش برای ایجاد گزارش تغذیه وجود دارد که به نوع غذا بستگی دارد:
غذای شناساییشده: فیلد
foodرا برای ارجاع به منبع غذا موجود تنظیم کنید. فیلدهایnutrients،energy،energyFromFat،totalCarbohydrate،totalFat، وfoodDisplayNameبهطور خودکار از غذای ارجاعشده پر میشوند. این روش ترجیحی است.غذای ناشناس: فیلد
foodDisplayNameرا بهصورت دستی تنظیم کنید و مقادیرnutrients،energy،energyFromFat،totalCarbohydrate، وtotalFatرا ارائه دهید. گزارشهای تغذیه ایجادشده از غذای ناشناس پساز ایجاد قابلویرایش نیستند.
یک گزارش تغذیه با غذای ناشناس بساز
برای ایجاد ورودی گزارش تغذیه، درخواست POST را به نقطه پایانی nutrition-log
dataPoints ارسال کنید.
درخواست
POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json
{
"nutritionLog": {
"interval": {
"startTime": "2026-06-16T18:00:00Z",
"endTime": "2026-06-16T18:30:00Z"
},
"foodDisplayName": "Grilled Chicken Breast",
"mealType": "DINNER",
"energy": {
"kcal": 165
},
"totalCarbohydrate": {
"grams": 0
},
"totalFat": {
"grams": 3.6
},
"nutrients": [
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
},
{
"nutrient": "SODIUM",
"quantity": {
"grams": 0.074
}
}
],
"serving": {
"amount": 1.0
}
}
}پاسخ
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
"name": "users/user-id/dataTypes/nutrition-log/dataPoints/data-point-id",
"dataSource": {
"recordingMethod": "UNKNOWN",
"application": {
"googleWebClientId": "google-web-client-id"
},
"platform": "GOOGLE_WEB_API"
},
"nutritionLog": {
"interval": {
"startTime": "2026-06-16T18:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-06-16T18:30:00Z",
"endUtcOffset": "0s",
"civilStartTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 18
}
},
"civilEndTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 18,
"minutes": 30
}
}
},
"energy": {
"kcal": 165
},
"totalCarbohydrate": {
"grams": 0
},
"totalFat": {
"grams": 3.6
},
"nutrients": [
{
"quantity": {
"grams": 31
},
"nutrient": "PROTEIN"
},
{
"quantity": {
"grams": 0.074
},
"nutrient": "SODIUM"
}
],
"mealType": "DINNER",
"serving": {
"amount": 1
},
"foodDisplayName": "Grilled Chicken Breast"
}
}
}ایجاد گزارش تغذیه با غذای شناساییشده
برای ثبت کردن غذا از پایگاه داده غذا، فیلد food را برای ارجاع به منبع «غذا» تنظیم کنید. میانای برنامهسازی کاربردی فیلدهای تغذیهای را بهطور خودکار پر میکند.
درخواست
POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json
{
"nutritionLog": {
"interval": {
"startTime": "2026-06-16T12:00:00Z",
"endTime": "2026-06-16T12:30:00Z"
},
"food": "users/me/dataTypes/food/dataPoints/food-id",
"mealType": "LUNCH",
"serving": {
"amount": 1.0,
"foodMeasurementUnit": "users/me/dataTypes/food-measurement-unit/dataPoints/food-measurement-unit-id"
}
}
}پاسخ
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
"name": "users/user-id/dataTypes/nutrition-log/dataPoints/data-point-id",
"dataSource": {
"recordingMethod": "UNKNOWN",
"application": {
"googleWebClientId": "google-web-client-id"
},
"platform": "GOOGLE_WEB_API"
},
"nutritionLog": {
"interval": {
"startTime": "2026-06-16T12:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-06-16T12:30:00Z",
"endUtcOffset": "0s",
"civilStartTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 12
}
},
"civilEndTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 12,
"minutes": 30
}
}
},
"energy": {
"kcal": 95
},
"energyFromFat": {
"kcal": 3
},
"totalCarbohydrate": {
"grams": 25
},
"totalFat": {
"grams": 0.3
},
"nutrients": [
{
"quantity": {
"grams": 4.4,
"userProvidedUnit": "GRAM"
},
"nutrient": "DIETARY_FIBER"
},
{
"quantity": {
"grams": 19,
"userProvidedUnit": "GRAM"
},
"nutrient": "SUGAR"
},
{
"quantity": {
"grams": 0.5,
"userProvidedUnit": "GRAM"
},
"nutrient": "PROTEIN"
}
],
"mealType": "LUNCH",
"serving": {
"amount": 1,
"foodMeasurementUnit": "users/me/dataTypes/food-measurement-unit/dataPoints/food-measurement-unit-id"
},
"food": "users/user-id/dataTypes/food/dataPoints/food-id",
"foodDisplayName": "Apple"
}
}
}حذف گزارشهای تغذیه
برای حذف یک یا چند ورودی گزارش تغذیه، درخواست POST را به روش batchDelete با نام منبع ورودیهایی که باید حذف شوند ارسال کنید.
درخواست:
POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints:batchDelete
Authorization: Bearer access-token
Content-Type: application/json
{
"names": [
"users/me/dataTypes/nutrition-log/dataPoints/data-point-id"
]
}فیلدهای گزارش تغذیه
برای مشاهده فهرست کامل فیلدها و توضیحات، به
NutritionLog مراجعه کنید.
مقدار انرژی
نشاندهنده اندازهگیری انرژی است که برحسب کیلوکالری (kcal) اندازهگیری میشود. برای
جزئیات، به EnergyQuantity مراجعه کنید.
{
"kcal": 165
}
مقدار وزن
نشاندهنده اندازهگیری وزن، به گرم. برای جزئیات،
WeightQuantity را ببینید.
{
"grams": 27.3
}
مقدار ماده مغذی
نشاندهنده ماده مغذی خاص و مقدار اندازهگیریشده آن است. برای جزئیات، به
NutrientQuantity مراجعه کنید.
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
}
مقادیر مواد مغذی
برای فهرست کامل انواع مواد مغذی پشتیبانیشده، به
Nutrient مراجعه کنید.
خدمات رسانی
نشاندهنده اطلاعات وعده غذایی برای ورودی گزارش تغذیه است. برای جزئیات، به
Serving مراجعه کنید.
{
"amount": 1.5
}
مقادیر نوع غذا
برای فهرست کامل انواع وعدههای غذایی پشتیبانیشده،
MealType را ببینید.
غذا
«غذا» نوع داده فقطخواندنی است که نشاندهنده یک ماده غذایی در پایگاه داده غذا است.
از عملیات list و get برای مرور غذاهای دردسترس و بازیابی اطلاعات تغذیهای آنها استفاده کنید.
فهرست کردن غذاها
برای فهرست کردن غذاها، درخواست GET را به نقطه پایانی food dataPoints ارسال کنید:
GET https://health.googleapis.com/v4/users/me/dataTypes/food/dataPoints Authorization: Bearer access-token Accept: application/json
واحد اندازهگیری غذا
«واحد اندازهگیری غذا» نوع دادهای فقط خواندنی است که واحدهای اندازهگیری مورداستفاده برای وعدههای غذایی را نشان میدهد (برای مثال، «فنجان»، «قاشق غذاخوری»، یا «تکه»).
فهرست کردن واحدهای اندازهگیری دردسترس
برای فهرست کردن واحدهای اندازهگیری دردسترس:
GET https://health.googleapis.com/v4/users/me/dataTypes/food-measurement-unit/dataPoints Authorization: Bearer access-token Accept: application/json
گزارش آبرسانی
«گزارش مصرف آب» نشاندهنده مایعاتی است که کاربر ثبت کرده است. برخلاف غذاها که به پایگاه داده «غذا» ارجاع میدهند و مصرف مواد مغذی یا انرژی را اندازهگیری میکنند، ورودیهای آبرسانی حجم مشخصی از مایع مصرفشده را در یک بازه زمانی معین ردیابی میکنند.
ایجاد گزارش آبرسانی
برای ایجاد ورودی گزارش آبرسانی، درخواست POST را به نقطه پایانی hydration-log
dataPoints ارسال کنید. همه مقادیر حجم در قالب میانای برنامهسازی کاربردی به میلیلیتر تبدیل میشوند.
درخواست
POST https://health.googleapis.com/v4/users/me/dataTypes/hydration-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json
{
"hydrationLog": {
"interval": {
"startTime": "2026-06-16T14:00:00Z",
"endTime": "2026-06-16T14:00:01Z"
},
"amountConsumed": {
"milliliters": 500,
"userProvidedUnit": "FLUID_OUNCE_US"
}
}
}پاسخ
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
"name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
"dataSource": {
"recordingMethod": "UNKNOWN",
"application": {
"googleWebClientId": "google-web-client-id"
},
"platform": "GOOGLE_WEB_API"
},
"hydrationLog": {
"interval": {
"startTime": "2026-06-16T14:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-06-16T14:00:01Z",
"endUtcOffset": "0s",
"civilStartTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 14
}
},
"civilEndTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 14,
"seconds": 1
}
}
},
"amountConsumed": {
"milliliters": 500,
"userProvidedUnit": "FLUID_OUNCE_US"
}
}
}
}بهروزرسانی گزارش آبرسانی
برای بهروزرسانی ورودی گزارش آبرسانی، درخواست PATCH را با شناسه نقطه داده به نقطه پایانی hydration-log
dataPoints ارسال کنید.
درخواست
PATCH https://health.googleapis.com/v4/users/me/dataTypes/hydration-log/dataPoints/data-point-id
Authorization: Bearer access-token
Content-Type: application/json
{
"hydrationLog": {
"interval": {
"startTime": "2026-06-16T10:00:00Z",
"endTime": "2026-06-16T10:00:01Z"
},
"amountConsumed": {
"milliliters": 500
}
}
}پاسخ
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
"name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
"dataSource": {
"recordingMethod": "UNKNOWN",
"application": {
"googleWebClientId": "google-web-client-id"
},
"platform": "GOOGLE_WEB_API"
},
"hydrationLog": {
"interval": {
"startTime": "2026-06-16T10:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-06-16T10:00:01Z",
"endUtcOffset": "0s",
"civilStartTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 10
}
},
"civilEndTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 10,
"seconds": 1
}
}
},
"amountConsumed": {
"milliliters": 500
}
}
}
}حذف گزارشهای آبرسانی
برای حذف یک یا چند ورودی گزارش آبرسانی، درخواست POST را به روش batchDelete ارسال کنید.
درخواست
POST https://health.googleapis.com/v4/users/me/dataTypes/hydration-log/dataPoints:batchDelete
Authorization: Bearer access-token
Content-Type: application/json
{
"names": [
"users/me/dataTypes/hydration-log/dataPoints/data-point-id"
]
}پاسخ
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.devicesandservices.health.v4.BatchDeleteDataPointsResponse",
"dataPoints": [
{
"name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
"dataSource": {
"recordingMethod": "UNKNOWN",
"application": {
"googleWebClientId": "google-web-client-id"
},
"platform": "GOOGLE_WEB_API"
},
"hydrationLog": {
"interval": {
"startTime": "2026-06-16T14:00:00Z",
"startUtcOffset": "0s",
"endTime": "2026-06-16T14:00:01Z",
"endUtcOffset": "0s",
"civilStartTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 14
}
},
"civilEndTime": {
"date": {
"year": 2026,
"month": 6,
"day": 16
},
"time": {
"hours": 14,
"seconds": 1
}
}
},
"amountConsumed": {
"milliliters": 500,
"userProvidedUnit": "FLUID_OUNCE_US"
}
}
}
]
}
}فیلدهای ثبت آبرسانی
برای مشاهده فهرست کامل فیلدها و توضیحات، به
HydrationLog مراجعه کنید.
مقدار حجم
نشاندهنده اندازهگیری حجم است که برحسب میلیلیتر اندازهگیری میشود. برای جزئیات،
VolumeQuantity را ببینید.
{
"milliliters": 250,
"userProvidedUnit": "MILLILITER"
}
مقادیر واحد حجم
برای مشاهده فهرست کامل واحدهای حجم پشتیبانیشده، به
VolumeUnit مراجعه کنید. مقادیر رایج شامل
MILLILITER، LITER، CUP_US، و FLUID_OUNCE_US میشود.
رهنمودها
- درصورت امکان از غذای شناساییشده استفاده کنید. این میانای برنامهسازی کاربردی فیلدهای تغذیهای را بهطور خودکار پر میکند، خطاها را کاهش میدهد، و سازگاری با پایگاه داده غذا را تضمین میکند.
- گزارشهای تغذیه ایجادشده از غذای ناشناس را نمیتوان پساز ایجاد بهروز کرد. اگر لازم است گزارش غذای ناشناسی را اصلاح کنید، آن را حذف کنید و گزارش جدیدی ایجاد کنید.
- برخلاف گزارشهای ناشناس تغذیه غذایی، ورودیهای گزارش هیدراتاسیون کاملاً
قابلتغییر هستند و میتوانند پساز ایجاد بااستفاده از درخواست
PATCHبهروز شوند. - همه مقادیر مواد مغذی در آرایه
nutrientsاز گرم بهعنوان واحد اندازهگیری استفاده میکنند. - فیلدهای
energyوenergyFromFatاز کیلوکالری (kcal) بهعنوان واحد اندازهگیری استفاده میکنند. - این میانای برنامهسازی کاربردی همه مقادیر آبرسانی را به میلیلیتر تبدیل و ذخیره میکند. فیلد اختیاری
userProvidedUnitدرVolumeQuantityفقط برای نمایش سمت مشتری برای کاربر استفاده میشود. - درخواستهای مستقیم HTTP
DELETEبه نقاط دادهhydration-logجداگانه404 Not Foundرا برمیگرداند. از روشbatchDeleteبرای برداشتن این ورودیهای منبع استفاده کنید. - گزارشهای مصرف آب از فاصله زمانی کوتاهی استفاده میکنند که در آن
startTimeوendTimeنشاندهنده دوره زمانی مصرف مایع است.