رابط برنامهنویسی کاربردی گوگل هلث (Google Health API) انواع دادهای را برای ردیابی تغذیه و میزان آب بدن کاربر ارائه میدهد. این نوع دادهها به شما امکان میدهند وعدههای غذایی را ثبت کنید، غذاهای مرجع را از پایگاه داده مواد غذایی انتخاب کنید، مقادیر مواد مغذی را پیگیری کنید و میزان مصرف مایعات را ثبت کنید.
انواع داده پشتیبانی شده
| نوع داده | موجود است عملیات | دامنه |
|---|---|---|
| غذا | فهرست کردن، دریافت کردن | .nutrition.readonly.nutrition.writeonly |
| واحد اندازهگیری غذا نوع داده: food-measurement-unitپارامتر فیلتر: food_measurement_unit نوع رکورد: غذا دستگاههای سازگار
| فهرست کردن، دریافت کردن | .nutrition.readonly.nutrition.writeonly |
| گزارش هیدراتاسیون | فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، بهروزرسانی کردن، حذف دستهای | .nutrition.readonly.nutrition.writeonly |
| گزارش تغذیه نوع داده: nutrition-logپارامتر فیلتر: nutrition_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"
]
}فیلدهای ثبت تغذیه
برای فهرست کامل فیلدها و توضیحات، به NutritionLog مراجعه کنید.
مقدار انرژی
نشاندهندهی واحد اندازهگیری انرژی است که بر حسب کیلوکالری ( kcal ) اندازهگیری میشود. برای جزئیات بیشتر، به EnergyQuantity مراجعه کنید.
{
"kcal": 165
}
مقدار وزن
نشاندهندهی واحد وزن است که بر حسب گرم اندازهگیری میشود. برای جزئیات بیشتر، به WeightQuantity مراجعه کنید.
{
"grams": 27.3
}
مقدار مواد مغذی
نشان دهنده یک ماده مغذی خاص و مقدار اندازهگیری شده آن است. برای جزئیات بیشتر، به NutrientQuantity مراجعه کنید.
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
}
مقادیر مواد مغذی
برای فهرست کاملی از انواع مواد مغذی پشتیبانیشده، به Nutrient مراجعه کنید.
خدمت رسانی
اطلاعات مربوط به وعده غذایی را برای ورودی گزارش تغذیه نشان میدهد. برای جزئیات بیشتر، به Serving مراجعه کنید.
{
"amount": 1.5
}
مقادیر نوع وعده غذایی
برای فهرست کاملی از انواع وعدههای غذایی پشتیبانیشده، به 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"
}
}
}
]
}
}میدانهای ثبت هیدراسیون
برای فهرست کامل فیلدها و توضیحات، به HydrationLog مراجعه کنید.
مقدار حجم
نشاندهندهی واحد حجم است که بر حسب میلیلیتر اندازهگیری میشود. برای جزئیات بیشتر، به VolumeQuantity مراجعه کنید.
{
"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نشاندهنده دوره زمانی مصرف مایع هستند.