Google Health API cung cấp các loại dữ liệu để theo dõi lượng thức ăn và thông tin dinh dưỡng của người dùng. Các loại này cho phép bạn ghi nhật ký bữa ăn, tham khảo thực phẩm trong cơ sở dữ liệu thực phẩm và theo dõi số lượng chất dinh dưỡng.
Các loại dữ liệu được hỗ trợ
Loại dữ liệudataType
filter tham số |
Loại bản ghi |
Các thao tác có thể thực hiện |
Phạm vi | Hỗ trợ webhook |
Hỗ trợ số 0 thực |
|---|---|---|---|---|---|
Thực phẩm
foodfood
|
Thực phẩm | list, get | .nutrition.readonly.nutrition.writeonly |
||
Đơn vị đo lường thực phẩm
food-measurement-unitfood_measurement_unit
|
Thực phẩm | list, get | .nutrition.readonly.nutrition.writeonly |
||
Nhật ký dinh dưỡng
nutrition-lognutrition_log
|
Mẫu | list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
Nhật ký dinh dưỡng
Nhật ký dinh dưỡng là thông tin về thực phẩm do người dùng ghi lại. Có hai cách để tạo nhật ký dinh dưỡng, tuỳ thuộc vào loại thực phẩm:
Thực phẩm được nhận dạng: Đặt trường
foodđể tham chiếu đến một tài nguyên Food hiện có. Các trườngnutrients,energy,energyFromFat,totalCarbohydrate,totalFatvàfoodDisplayNamesẽ được điền sẵn tự động từ thực phẩm được tham chiếu. Đây là phương thức ưu tiên.Thực phẩm ẩn danh: Đặt trường
foodDisplayNametheo cách thủ công và cung cấp các giá trị chonutrients,energy,energyFromFat,totalCarbohydratevàtotalFat. Bạn không thể chỉnh sửa nhật ký dinh dưỡng được tạo từ thực phẩm ẩn danh sau khi tạo.
Tạo nhật ký dinh dưỡng bằng thực phẩm ẩn danh
Để tạo một mục nhập nhật ký dinh dưỡng, hãy gửi yêu cầu POST đến điểm cuối nutrition-log dữ liệu.
Yêu cầu
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
}
}
}Phản hồi
{
"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"
}
}
}Tạo nhật ký dinh dưỡng với thực phẩm đã xác định
Để ghi nhật ký một thực phẩm trong cơ sở dữ liệu thực phẩm, hãy đặt trường food để tham chiếu đến một tài nguyên Thực phẩm. API sẽ tự động điền các trường dinh dưỡng.
Yêu cầu:
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
}
}
}Xoá nhật ký dinh dưỡng
Để xoá một hoặc nhiều mục nhật ký dinh dưỡng, hãy gửi yêu cầu POST đến điểm cuối batchDelete cùng với tên tài nguyên của các mục cần xoá.
Yêu cầu:
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"
]
}Các trường NutritionLog
Để xem danh sách đầy đủ các trường và nội dung mô tả, hãy xem Tài liệu tham khảo.
EnergyQuantity
Biểu thị một phép đo năng lượng, được đo bằng kilocalories (kcal). Để biết thông tin chi tiết, hãy xem EnergyQuantity.
{
"kcal": 165
}
WeightQuantity
Biểu thị một đơn vị đo trọng lượng, tính bằng gam. Để biết thông tin chi tiết, hãy xem WeightQuantity.
{
"grams": 27.3
}
NutrientQuantity
Biểu thị một chất dinh dưỡng cụ thể và số lượng đo được của chất đó. Để biết thông tin chi tiết, hãy xem NutrientQuantity.
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
}
Giá trị dinh dưỡng
Để xem danh sách đầy đủ các loại chất dinh dưỡng được hỗ trợ, hãy xem phần Chất dinh dưỡng.
Đang phân phối
Biểu thị thông tin về khẩu phần cho một mục nhập nhật ký dinh dưỡng. Để biết thông tin chi tiết, hãy xem phần Phân phát.
{
"amount": 1.5
}
Giá trị MealType
Để biết danh sách đầy đủ các loại bữa ăn được hỗ trợ, hãy xem MealType.
Thực phẩm
Thực phẩm là một loại dữ liệu chỉ có thể đọc, đại diện cho một mặt hàng thực phẩm trong cơ sở dữ liệu thực phẩm.
Sử dụng các thao tác list và get để duyệt xem các loại thực phẩm hiện có và truy xuất thông tin dinh dưỡng của chúng.
Liệt kê thực phẩm
Để liệt kê các loại thực phẩm, hãy gửi yêu cầu GET đến điểm cuối food của dữ liệu:
GET https://health.googleapis.com/v4/users/me/dataTypes/food/dataPoints Authorization: Bearer access-token Accept: application/json
Đơn vị đo lường thực phẩm
Đơn vị đo lường thực phẩm là một kiểu dữ liệu chỉ đọc, biểu thị các đơn vị đo lường được dùng cho khẩu phần ăn (ví dụ: "cốc", "muỗng canh" hoặc "miếng").
Liệt kê các đơn vị đo lường có sẵn
Cách liệt kê các đơn vị đo lường có sẵn:
GET https://health.googleapis.com/v4/users/me/dataTypes/food-measurement-unit/dataPoints Authorization: Bearer access-token Accept: application/json
Nguyên tắc
- Sử dụng thực phẩm đã xác định khi có thể. API này tự động điền các trường dinh dưỡng, giảm lỗi và đảm bảo tính nhất quán với cơ sở dữ liệu thực phẩm.
- Bạn không thể cập nhật nhật ký dinh dưỡng được tạo từ thực phẩm ẩn danh sau khi tạo. Nếu cần chỉnh sửa nhật ký thực phẩm ẩn danh, hãy xoá nhật ký đó rồi tạo một nhật ký mới.
- Tất cả số lượng chất dinh dưỡng trong mảng
nutrientsđều sử dụng gam làm đơn vị đo lường. - Các trường
energyvàenergyFromFatsử dụng kilocalories (kcal) làm đơn vị đo lường.