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

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

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

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

Nutrition Log

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

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

  2. อาหารที่ไม่ระบุ: ตั้งค่าช่อง 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 เพื่ออ้างอิงทรัพยากรอาหาร 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
    }
  }
}

ลบบันทึกโภชนาการ

หากต้องการลบรายการบันทึกโภชนาการอย่างน้อย 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

Serving

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