رابط برنامهنویسی کاربردی گوگل هلث (Google Health API) انواع دادهای را برای ردیابی تغذیه و میزان آب بدن کاربر ارائه میدهد. این نوع دادهها به شما امکان میدهند وعدههای غذایی را ثبت کنید، غذاهای مرجع را از پایگاه داده مواد غذایی انتخاب کنید، مقادیر مواد مغذی را پیگیری کنید و میزان مصرف مایعات را ثبت کنید.
انواع داده پشتیبانی شده
نوع دادهdataTypeپارامتر filter | موجود است عملیات | دامنه |
|---|---|---|
| غذا | فهرست کردن، دریافت کردن | .nutrition.readonly.nutrition.writeonly |
واحد اندازهگیری غذاfood-measurement-unitfood_measurement_unit نوع رکورد: غذا دستگاههای سازگار
| فهرست کردن، دریافت کردن | .nutrition.readonly.nutrition.writeonly |
| گزارش هیدراتاسیون | فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، بهروزرسانی کردن، حذف دستهای | .nutrition.readonly.nutrition.writeonly |
گزارش تغذیهnutrition-lognutrition_log نوع رکورد: نمونه دستگاههای سازگار
| فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، بهروزرسانی کردن، حذف دستهای | .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 را طوری تنظیم کنید که به یک منبع غذایی ارجاع دهد. API به طور خودکار فیلدهای تغذیهای را پر میکند.
درخواست:
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
}
}
}حذف گزارشهای تغذیهای
برای حذف یک یا چند ورودی لاگ تغذیه، یک درخواست 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"
]
}فیلدهای ثبت تغذیه
برای مشاهده لیست کامل فیلدها و توضیحات، به مستندات مرجع مراجعه کنید.
مقدار انرژی
نشاندهندهی واحد اندازهگیری انرژی است که بر حسب کیلوکالری ( kcal ) اندازهگیری میشود. برای جزئیات بیشتر، به بخش «مقدار انرژی» مراجعه کنید.
{
"kcal": 165
}
وزنمقدار
نشاندهندهی واحد وزن است که بر حسب گرم اندازهگیری میشود. برای جزئیات بیشتر، به WeightQuantity مراجعه کنید.
{
"grams": 27.3
}
مقدار مواد مغذی
نشان دهنده یک ماده مغذی خاص و مقدار اندازهگیری شده آن است. برای جزئیات بیشتر، به بخش «مقدار مواد مغذی» مراجعه کنید.
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
}
مقادیر مواد مغذی
برای فهرست کاملی از انواع مواد مغذی پشتیبانیشده، به بخش مواد مغذی مراجعه کنید.
خدمت رسانی
اطلاعات مربوط به وعده غذایی را برای ورودی گزارش تغذیه نشان میدهد. برای جزئیات بیشتر، به بخش «وعده غذایی» مراجعه کنید.
{
"amount": 1.5
}
مقادیر نوع غذا (MealType)
برای فهرست کاملی از انواع وعدههای غذایی پشتیبانیشده، به MealType مراجعه کنید.
غذا
غذا یک نوع داده فقط خواندنی است که یک ماده غذایی را در پایگاه داده غذا نشان میدهد. از عملیات list و get برای مرور غذاهای موجود و بازیابی اطلاعات تغذیهای آنها استفاده کنید.
فهرست کردن غذاها
برای فهرست کردن غذاها، یک درخواست GET به نقطه پایانی dataPoints food ارسال کنید:
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 ارسال کنید. تمام مقادیر حجمی در قالب API به میلیلیتر تبدیل میشوند.
درخواست
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"
}
}
}
]
}
}فیلدهای گزارش هیدراتاسیون
برای مشاهده لیست کامل فیلدها و توضیحات، به مستندات مرجع مراجعه کنید.
حجممقدار
نشاندهندهی واحد حجم است که بر حسب میلیلیتر اندازهگیری میشود. برای جزئیات بیشتر، به بخش «حجم-مقدار» مراجعه کنید.
{
"milliliters": 250,
"userProvidedUnit": "MILLILITER"
}
مقادیر واحد حجم
برای فهرست کاملی از واحدهای حجم پشتیبانیشده، به VolumeUnit مراجعه کنید. مقادیر رایج شامل MILLILITER ، LITER ، CUP_US و FLUID_OUNCE_US هستند.
دستورالعملها
- در صورت امکان از مواد غذایی شناساییشده استفاده کنید. API به طور خودکار فیلدهای تغذیهای را پر میکند، خطاها را کاهش میدهد و سازگاری با پایگاه داده مواد غذایی را تضمین میکند.
- گزارشهای تغذیهای ایجاد شده از غذاهای ناشناس پس از ایجاد قابل بهروزرسانی نیستند. اگر نیاز به اصلاح یک گزارش غذای ناشناس دارید، آن را حذف کرده و یک گزارش جدید ایجاد کنید.
- برخلاف گزارشهای تغذیهای ناشناس، ورودیهای گزارش هیدراتاسیون کاملاً قابل تغییر هستند و میتوانند پس از ایجاد با استفاده از درخواست
PATCHبهروزرسانی شوند. - تمام مقادیر مواد مغذی در آرایه
nutrientsاز گرم به عنوان واحد اندازهگیری استفاده میکنند. - فیلدهای
energyوenergyFromFatاز کیلوکالری (kcal) به عنوان واحد اندازهگیری استفاده میکنند. - این API تمام مقادیر هیدراتاسیون را به میلیلیتر تبدیل و ذخیره میکند. فیلد اختیاری
userProvidedUnitدرVolumeQuantityفقط برای نمایش کاربر در سمت کلاینت استفاده میشود. - درخواستهای HTTP
DELETEمستقیم به نقاط دادهhydration-logمنفرد، خطای404 Not Foundرا برمیگردانند. از متدbatchDeleteبرای حذف این ورودیهای منبع استفاده کنید. - لاگهای هیدراتاسیون از یک بازه زمانی کوتاه استفاده میکنند که در آن
startTimeوendTimeنشاندهنده دوره زمانی مصرف مایع هستند.