Interfejs Google Health API udostępnia typy danych do śledzenia spożycia pokarmów i informacji o wartościach odżywczych użytkownika. Te typy umożliwiają rejestrowanie posiłków, odwoływanie się do produktów z bazy danych żywności oraz śledzenie ilości składników odżywczych.
Obsługiwane typy danych
Typ danychdataType
filter parametr |
Typ rekordu |
Dostępne operacje |
Zakres | Obsługa webhooków |
Obsługa prawdziwych zer |
|---|---|---|---|---|---|
Jedzenie
foodfood
|
Jedzenie | list, get | .nutrition.readonly.nutrition.writeonly |
||
Jednostka miary jedzenia
food-measurement-unitfood_measurement_unit
|
Jedzenie | list, get | .nutrition.readonly.nutrition.writeonly |
||
Dziennik odżywiania
nutrition-lognutrition_log
|
Przykład | list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
Dziennik odżywiania
Dziennik odżywiania reprezentuje jedzenie zarejestrowane przez użytkownika. Istnieją 2 sposoby tworzenia dziennika odżywiania, w zależności od typu jedzenia:
Zidentyfikowane jedzenie: ustaw pole
food, aby odwoływać się do istniejącego zasobu Food. Polanutrients,energy,energyFromFat,totalCarbohydrate,totalFatifoodDisplayNamesą automatycznie wypełniane na podstawie odwołania do jedzenia. To jest preferowana metoda.Anonimowe jedzenie: ręcznie ustaw pole
foodDisplayNamei podaj wartości dla pólnutrients,energy,energyFromFat,totalCarbohydrateitotalFat. Dzienników odżywiania utworzonych na podstawie anonimowego jedzenia nie można edytować po utworzeniu.
Tworzenie dziennika odżywiania z anonimowym jedzeniem
Aby utworzyć wpis logu odżywiania, wyślij żądanie POST do punktu końcowego danych nutrition-log.
Żądanie
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
}
}
}Odpowiedź
{
"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"
}
}
}Tworzenie dziennika odżywiania ze zidentyfikowanym jedzeniem
Aby zarejestrować produkt z bazy danych żywności, ustaw pole food, aby odwoływać się do zasobu Food. Interfejs API automatycznie wypełnia pola wartości odżywczych.
Żądanie:
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
}
}
}Usuwanie dzienników odżywiania
Aby usunąć co najmniej 1 wpis w dzienniku odżywiania, wyślij żądanie POST do punktu końcowego batchDelete z nazwami zasobów wpisów do usunięcia.
Żądanie:
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"
]
}Pola NutritionLog
Pełną listę pól i ich opisów znajdziesz w dokumentacji.
EnergyQuantity
Reprezentuje pomiar energii w kilokaloriach (kcal). Więcej informacji znajdziesz w sekcji EnergyQuantity.
{
"kcal": 165
}
WeightQuantity
Reprezentuje pomiar wagi w gramach. Więcej informacji znajdziesz w sekcji WeightQuantity.
{
"grams": 27.3
}
NutrientQuantity
Reprezentuje konkretny składnik odżywczy i jego zmierzoną ilość. Więcej informacji znajdziesz w sekcji NutrientQuantity.
{
"nutrient": "PROTEIN",
"quantity": {
"grams": 31
}
}
Wartości składników odżywczych
Pełną listę obsługiwanych typów składników odżywczych znajdziesz w sekcji Nutrient.
Serving
Reprezentuje informacje o porcji dla wpisu logu odżywiania. Więcej informacji znajdziesz w sekcji Serving.
{
"amount": 1.5
}
Wartości MealType
Pełną listę obsługiwanych typów posiłków znajdziesz w sekcji MealType.
Jedzenie
Food to typ danych tylko do odczytu, który reprezentuje produkt spożywczy w bazie danych żywności.
Użyj operacji list i get, aby przeglądać dostępne produkty i pobierać informacje o ich wartościach odżywczych.
Wyświetlanie listy produktów
Aby wyświetlić listę produktów, wyślij żądanie GET do punktu końcowego danych food:
GET https://health.googleapis.com/v4/users/me/dataTypes/food/dataPoints Authorization: Bearer access-token Accept: application/json
Jednostka miary jedzenia
Food Measurement Unit to typ danych tylko do odczytu, który reprezentuje jednostki miary używane do porcji jedzenia (np. „szklanka”, „łyżka stołowa” lub „sztuka”).
Wyświetlanie listy dostępnych jednostek miary
Aby wyświetlić listę dostępnych jednostek miary:
GET https://health.googleapis.com/v4/users/me/dataTypes/food-measurement-unit/dataPoints Authorization: Bearer access-token Accept: application/json
Wytyczne
- Jeśli to możliwe, używaj zidentyfikowanego jedzenia. Interfejs API automatycznie wypełnia pola wartości odżywczych, co zmniejsza liczbę błędów i zapewnia spójność z bazą danych żywności.
- Dzienników odżywiania utworzonych na podstawie anonimowego jedzenia nie można edytować po utworzeniu. Jeśli chcesz poprawić anonimowy dziennik jedzenia, usuń go i utwórz nowy.
- Wszystkie ilości składników odżywczych w tablicy
nutrientssą podawane w gramach. - Pola
energyienergyFromFatużywają kilokalorii (kcal) jako jednostki miary.