Google Health API มีประเภทข้อมูลสำหรับการติดตามโภชนาการและการดื่มน้ำของผู้ใช้ ประเภทเหล่านี้ช่วยให้คุณบันทึกมื้ออาหาร อ้างอิงอาหารจากฐานข้อมูลอาหาร ติดตามปริมาณสารอาหาร และบันทึกปริมาณของเหลวที่รับประทานได้
ประเภทข้อมูลที่รองรับ
| ประเภทข้อมูล | การดำเนินการ ที่ใช้ได้ |
ขอบเขต |
|---|---|---|
|
อาหาร
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
หน่วยวัดอาหาร
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
ประเภทระเบียน: อาหาร
อุปกรณ์ที่เข้ากันได้
|
list, get | .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 |
บันทึกโภชนาการ
บันทึกโภชนาการแสดงอาหารที่ผู้ใช้บันทึกไว้ คุณสร้างบันทึกโภชนาการได้ 2 วิธี โดยขึ้นอยู่กับประเภทอาหาร ดังนี้
อาหารที่ระบุ: ตั้งค่าช่อง
foodให้อ้างอิงทรัพยากร 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,
"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"
}
}
}ลบบันทึกโภชนาการ
หากต้องการลบรายการบันทึกโภชนาการอย่างน้อย 1 รายการ ให้ส่งคำขอ 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 ปริมาณทั้งหมดจะแปลงเป็นมิลลิลิตรในรูปแบบ 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
}
}
}
}ลบบันทึกการดื่มน้ำ
หากต้องการลบรายการบันทึกการดื่มน้ำอย่างน้อย 1 รายการ ให้ส่งคำขอ 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แสดงระยะเวลาที่ดื่มน้ำ