Google Health API 提供資料類型,可追蹤使用者的食物攝取量和營養資訊。你可以使用這些類型記錄餐點、從食物資料庫參照食物,以及追蹤營養素含量。
支援的資料類型
資料類型dataType
filter 參數 |
記錄 類型 |
可用的 作業 |
範圍 | Webhook 支援 |
支援真正的零 |
|---|---|---|---|---|---|
美食
foodfood
|
食物 | list、get | .nutrition.readonly.nutrition.writeonly |
||
食物測量單位
food-measurement-unitfood_measurement_unit
|
食物 | list、get | .nutrition.readonly.nutrition.writeonly |
||
營養記錄
nutrition-lognutrition_log
|
範例 | list、get、reconcile、rollup、dailyRollup、create、update、batchDelete | .nutrition.readonly.nutrition.writeonly |
營養記錄
營養記錄代表使用者記錄的食物。視食物類型而定,建立營養記錄的方式有兩種:
已識別的食物:將
food欄位設為參照現有的「Food」資源。系統會根據參照的食物,自動填入nutrients、energy、energyFromFat、totalCarbohydrate、totalFat和foodDisplayName欄位。(建議做法)。匿名食物:手動設定
foodDisplayName欄位,並提供nutrients、energy、energyFromFat、totalCarbohydrate和totalFat的值。以匿名食物建立的營養記錄檔無法編輯。
建立含有匿名食物的營養記錄
如要建立營養記錄項目,請將 POST 要求傳送至 nutrition-log 資料點端點。
要求
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 欄位設為參照 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 欄位
如需欄位和說明完整清單,請參閱參考文件。
EnergyQuantity
代表以千卡 (kcal) 為單位的能量測量值。詳情請參閱 EnergyQuantity。
{
"kcal": 165
}
WeightQuantity
代表以公克為單位的重量測量值。詳情請參閱「WeightQuantity」。
{
"grams": 27.3
}
NutrientQuantity
代表特定營養素及其測量量。詳情請參閱「NutrientQuantity」。
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
}
營養素值
如需支援的營養素類型完整清單,請參閱「營養素」。
供應
代表營養記錄項目的份量資訊。詳情請參閱「放送」。
{
"amount": 1.5
}
MealType 值
如需支援的餐點類型完整清單,請參閱「MealType」。
食物
「食物」是唯讀資料類型,代表食物資料庫中的食物項目。使用 list 和 get 作業瀏覽可用的食物,並擷取營養資訊。
列出食物
如要列出食品,請將 GET 要求傳送至 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
規範
- 盡可能使用系統辨識的食物。API 會自動填入營養欄位,減少錯誤並確保與食物資料庫一致。
- 以匿名食物建立的營養記錄無法更新。 如要修正匿名記錄,請刪除並重新建立。
nutrients陣列中的所有營養素數量都以公克為測量單位。- 「
energy」和「energyFromFat」欄位會使用千卡 (kcal) 做為測量單位。