ประเภทข้อมูลโภชนาการ

Google Health API มีประเภทข้อมูลสำหรับการติดตามปริมาณอาหารที่ผู้ใช้บริโภคและข้อมูลโภชนาการ ประเภทข้อมูลเหล่านี้ช่วยให้คุณบันทึกมื้ออาหาร อ้างอิงอาหารจากฐานข้อมูลอาหาร และติดตามปริมาณสารอาหารได้

ประเภทข้อมูลที่รองรับ

ตาราง: ประเภทข้อมูลโภชนาการของ Google Health API
Data type
  dataType
  filter parameter
Record
type
Available
operations
Scope Webhook
support
True zeros
support
Food
  food
  food
อาหาร list, get .nutrition.readonly
.nutrition.writeonly
Food Measurement Unit
  food-measurement-unit
  food_measurement_unit
อาหาร list, get .nutrition.readonly
.nutrition.writeonly
Nutrition Log
  nutrition-log
  nutrition_log
ตัวอย่าง list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly

Nutrition Log

Nutrition Log แสดงถึงอาหารที่ผู้ใช้บันทึกไว้ คุณสร้าง Nutrition Log ได้ 2 วิธี โดยขึ้นอยู่กับประเภทอาหาร ดังนี้

  1. อาหารที่ระบุ: ตั้งค่าช่อง food เพื่ออ้างอิงทรัพยากร อาหารที่มีอยู่ ระบบจะป้อนข้อมูลในช่อง nutrients, energy, energyFromFat, totalCarbohydrate, totalFat และ foodDisplayName โดยอัตโนมัติจากอาหารที่อ้างอิง ซึ่งเป็นวิธีที่แนะนำ

  2. อาหารที่ไม่ระบุ: ตั้งค่าช่อง foodDisplayName ด้วยตนเองและระบุ ค่าสำหรับ nutrients, energy, energyFromFat, totalCarbohydrate, และ totalFat Nutrition Log ที่สร้างจากอาหารที่ไม่ระบุจะแก้ไขไม่ได้หลังจากสร้าง

สร้าง Nutrition Log ด้วยอาหารที่ไม่ระบุ

หากต้องการสร้างรายการบันทึก Nutrition Log ให้ส่งคำขอ 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"
    }
  }
}

สร้าง Nutrition Log ด้วยอาหารที่ระบุ

หากต้องการบันทึกรายการอาหารจากฐานข้อมูลอาหาร ให้ตั้งค่าช่อง 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
    }
  }
}

ลบ Nutrition Log

หากต้องการลบรายการ Nutrition Log อย่างน้อย 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

ดูรายการช่องและคำอธิบายทั้งหมดได้ในเอกสารอ้างอิง

EnergyQuantity

แสดงถึงการวัดพลังงานที่วัดเป็นกิโลแคลอรี (kcal) ดูรายละเอียดได้ที่ EnergyQuantity

{
  "kcal": 165
}

WeightQuantity

แสดงถึงการวัดน้ำหนักที่วัดเป็นกรัม ดูรายละเอียดได้ที่ WeightQuantity

{
  "grams": 27.3
}

NutrientQuantity

แสดงถึงสารอาหารที่เฉพาะเจาะจงและปริมาณที่วัดได้ ดูรายละเอียดได้ที่ NutrientQuantity

{
  "nutrient": "PROTEIN",
  "quantity": {
    "grams": 31
  }
}

ค่าสารอาหาร

ดูรายการประเภทสารอาหารทั้งหมดที่รองรับได้ที่ Nutrient

กำลังแสดง

แสดงถึงข้อมูลการเสิร์ฟสำหรับรายการบันทึก Nutrition Log ดูรายละเอียดได้ที่ Serving

{
  "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 จะป้อนข้อมูลในช่องโภชนาการโดยอัตโนมัติ ซึ่งจะช่วยลดข้อผิดพลาดและรับประกันความสอดคล้องกับฐานข้อมูลอาหาร
  • Nutrition Log ที่สร้างจากอาหารที่ไม่ระบุจะอัปเดตไม่ได้หลังจากสร้าง หากต้องการแก้ไข Nutrition Log ที่สร้างจากอาหารที่ไม่ระบุ ให้ลบ Nutrition Log นั้นแล้วสร้างรายการใหม่
  • ปริมาณสารอาหารทั้งหมดในอาร์เรย์ nutrients ใช้กรัมเป็นหน่วยวัด
  • ช่อง energy และ energyFromFat ใช้กิโลแคลอรี (kcal) เป็น หน่วยวัด