Loại dữ liệu dinh dưỡng

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ợ

Bảng: Các loại dữ liệu dinh dưỡng của Google Health API
Loại dữ liệu
  dataType
  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
  food
  food
Thực phẩm list, get .nutrition.readonly
.nutrition.writeonly
Đơn vị đo lường thực phẩm
  food-measurement-unit
  food_measurement_unit
Thực phẩm list, get .nutrition.readonly
.nutrition.writeonly
Nhật ký dinh dưỡng
  nutrition-log
  nutrition_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:

  1. 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ường nutrients, energy, energyFromFat, totalCarbohydrate, totalFatfoodDisplayName sẽ đượ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.

  2. Thực phẩm ẩn danh: Đặt trường foodDisplayName theo cách thủ công và cung cấp các giá trị cho nutrients, energy, energyFromFat, totalCarbohydratetotalFat. 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 listget để 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 energyenergyFromFat sử dụng kilocalories (kcal) làm đơn vị đo lường.