ตารางต่อไปนี้มีรายการประเภทข้อมูลทั้งหมด โดยมีคอลัมน์หลายคอลัมน์เพื่อช่วยให้คุณเข้าใจการแสดงข้อมูลแต่ละประเภทใน Google Health API รวมถึงขอบเขตที่แต่ละประเภทพร้อมใช้งาน
ช่องประเภทข้อมูล
ตารางประเภทข้อมูลของ Google Health API มีคอลัมน์ฟิลด์หลายคอลัมน์เพื่อช่วยให้คุณเข้าใจการแสดงผลและข้อกำหนดของข้อมูลแต่ละประเภท คอลัมน์เหล่านี้มีดังนี้
| ช่อง | คำอธิบาย |
|---|---|
dataType |
ตัวระบุที่คั่นด้วยขีดกลาง (เช่น active-minutes) ที่ใช้ใน URL ของปลายทาง |
พารามิเตอร์ filter |
ตัวระบุที่คั่นด้วยขีดล่าง (เช่น active_minutes) ซึ่งใช้เป็นค่าสำหรับพารามิเตอร์ตัวกรอง dataType ในคำขอสรุปรายวันและคำขอสรุป |
| ประเภทระเบียน | ระบุโครงสร้างและรูปแบบของข้อมูลที่บันทึกไว้ ในเบื้องหลัง การดำเนินการนี้จะสอดคล้องกับการแสดงทรัพยากรของจุดข้อมูล โดยค่าที่เลือกได้มีดังนี้
|
| การดำเนินการที่ใช้ได้ | แสดงรายการเมธอด API ที่รองรับสำหรับประเภทข้อมูล (เช่น list, create และ rollUp) |
| ขอบเขต | ขอบเขต OAuth ที่จำเป็นในการเข้าถึงประเภทข้อมูล |
| การรองรับเว็บฮุค | ระบุว่าประเภทข้อมูลรองรับการแจ้งเตือนแบบเรียลไทม์โดยใช้เว็บฮุคเมื่อมีการซิงค์ข้อมูลใหม่ |
| การรองรับ True Zero | ระบุว่าประเภทข้อมูลรองรับการบันทึกค่าศูนย์ที่ชัดเจนเพื่อแยกความแตกต่างระหว่างค่าศูนย์ที่ใช้งานอยู่ (เช่น นาทีที่แอ็กทีฟเป็นศูนย์) กับข้อมูลที่ขาดหายไปหรือไม่ได้รับการบันทึก |
| ความละเอียดของพื้นที่เก็บข้อมูล | ช่วงเวลาการบันทึกหรือการสุ่มตัวอย่างขั้นต่ำที่จัดเก็บจุดข้อมูล (เช่น 1 นาทีสำหรับ steps) สำหรับการรวมข้อมูล ค่านี้แสดงถึง windowSize ขั้นต่ำที่แนะนำเพื่อให้แน่ใจว่ามีการรวมข้อมูลที่กระจายอย่างสม่ำเสมอโดยไม่มีอาร์ติแฟกต์ข้อมูลช่วงเวลาย่อย |
| อุปกรณ์ที่เข้ากันได้ | รายการอุปกรณ์จริงที่ขยายได้ซึ่งสามารถบันทึกและซิงค์ข้อมูลประเภทนี้กับ Google Health API (โดยใช้แอป Fitbit) |
| ประเภทข้อมูล | การดำเนินการ ที่ใช้ได้ |
ขอบเขต |
|---|---|---|
|
พลังงานที่เผาผลาญขณะทำกิจกรรม
dataType:
active-energy-burnedfilter parameter: active_energy_burned
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
นาทีที่แอ็กทีฟ
dataType:
active-minutesfilter parameter: active_minutes
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
อุปกรณ์ที่เข้ากันได้
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
นาทีในโซนแอ็กทีฟ
dataType:
active-zone-minutesfilter parameter: active_zone_minutes
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
อุปกรณ์ที่เข้ากันได้
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ระดับกิจกรรม
|
รายการ, ตรวจสอบยอดคงเหลือ | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
Altitude
dataType:
altitudefilter parameter: altitude
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
น้ำตาลกลูโคสในเลือด
dataType:
blood-glucosefilter parameter: blood_glucose
ประเภทระเบียน: ตัวอย่าง
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ไขมันร่างกาย
dataType:
body-fatfilter parameter: body_fat
ประเภทระเบียน: ตัวอย่าง
อุปกรณ์ที่เข้ากันได้
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
แคลอรีในโซนอัตราการเต้นของหัวใจ
dataType:
calories-in-heart-rate-zonefilter parameter: calories_in_heart_rate_zone
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
อุณหภูมิแกนกลางของร่างกาย
dataType:
core-body-temperaturefilter parameter: core_body_temperature
ประเภทระเบียน: ตัวอย่าง
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ความผันแปรของอัตราการเต้นของหัวใจประจำวัน
dataType:
daily-heart-rate-variabilityfilter parameter: daily_heart_rate_variability
ประเภทการบันทึก: รายวัน
อุปกรณ์ที่เข้ากันได้
|
รายการ, ตรวจสอบยอดคงเหลือ | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
โซนอัตราการเต้นของหัวใจประจำวัน
dataType:
daily-heart-rate-zonesfilter parameter: daily_heart_rate_zones
ประเภทการบันทึก: รายวัน
|
รายการ, ตรวจสอบยอดคงเหลือ | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ความอิ่มตัวของออกซิเจนรายวัน
dataType:
daily-oxygen-saturationfilter parameter: daily_oxygen_saturation
ประเภทการบันทึก: รายวัน
อุปกรณ์ที่เข้ากันได้
|
รายการ, ตรวจสอบยอดคงเหลือ | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
อัตราการหายใจรายวัน
dataType:
daily-respiratory-ratefilter parameter: daily_respiratory_rate
ประเภทการบันทึก: รายวัน
อุปกรณ์ที่เข้ากันได้
|
รายการ, ตรวจสอบยอดคงเหลือ | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
อัตราการเต้นของหัวใจขณะพักรายวัน
dataType:
daily-resting-heart-ratefilter parameter: daily_resting_heart_rate
ประเภทการบันทึก: รายวัน
อุปกรณ์ที่เข้ากันได้
|
รายการ, ตรวจสอบยอดคงเหลือ | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ค่าเบี่ยงเบนของอุณหภูมิขณะนอนหลับรายวัน
dataType:
daily-sleep-temperature-derivationsfilter parameter: daily_sleep_temperature_derivations
ประเภทการบันทึก: รายวัน
อุปกรณ์ที่เข้ากันได้
|
รายการ, ตรวจสอบยอดคงเหลือ | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ปริมาณการใช้ออกซิเจนสูงสุดรายวัน
dataType:
daily-vo2-maxfilter parameter: daily_vo2_max
ประเภทการบันทึก: รายวัน
อุปกรณ์ที่เข้ากันได้
|
รายการ, ตรวจสอบยอดคงเหลือ | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ระยะทาง
dataType:
distancefilter parameter: distance
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
อุปกรณ์ที่เข้ากันได้
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
คลื่นไฟฟ้าหัวใจ (ECG)
dataType:
electrocardiogramfilter parameter: electrocardiogram
ประเภทระเบียน: เซสชัน
อุปกรณ์ที่เข้ากันได้
|
list | .ecg.readonly |
|
การออกกำลังกาย
dataType:
exercisefilter parameter: exercise
ประเภทระเบียน: เซสชัน
อุปกรณ์ที่เข้ากันได้
|
list, get, reconcile, create, update, batchDelete | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ชั้น
dataType:
floorsfilter parameter: floors
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
|
reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
อาหาร
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
หน่วยวัดอาหาร
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
ประเภทระเบียน: อาหาร
อุปกรณ์ที่เข้ากันได้
|
list, get | .nutrition.readonly.nutrition.writeonly |
|
อัตราการเต้นของหัวใจ
dataType:
heart-ratefilter parameter: heart_rate
ประเภทระเบียน: ตัวอย่าง
ความละเอียดของพื้นที่เก็บข้อมูล: 1 วินาที
อุปกรณ์ที่เข้ากันได้
|
list, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ความผันแปรของอัตราการเต้นของหัวใจ
dataType:
heart-rate-variabilityfilter parameter: heart_rate_variability
ประเภทระเบียน: ตัวอย่าง
อุปกรณ์ที่เข้ากันได้
|
รายการ, ตรวจสอบยอดคงเหลือ | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ส่วนสูง
|
list, get, reconcile, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
บันทึกปริมาณน้ำที่ดื่ม
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
การแจ้งเตือนเมื่อจังหวะการเต้นของหัวใจผิดปกติ
dataType:
irregular-rhythm-notificationfilter parameter: irregular_rhythm_notification
ประเภทระเบียน: เซสชัน
|
list | .irn.readonly |
|
ระยะเวลาที่มีประจำเดือน
dataType:
menstrual-periodfilter parameter: menstrual_period
ประเภทระเบียน: Interval
|
create, update, batchDelete | .reproductive_health.writeonly |
|
โทนภาพ
|
create, update, batchDelete | .mindfulness.writeonly |
|
บันทึกโภชนาการ
dataType:
nutrition-logfilter parameter: nutrition_log
ประเภทระเบียน: เซสชัน
อุปกรณ์ที่เข้ากันได้
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
การทดสอบการตกไข่
dataType:
ovulation-testfilter parameter: ovulation_test
ประเภทระเบียน: ตัวอย่าง
|
create, update, batchDelete | .reproductive_health.writeonly |
|
ความอิ่มตัวของออกซิเจน
dataType:
oxygen-saturationfilter parameter: oxygen_saturation
ประเภทระเบียน: ตัวอย่าง
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
อุปกรณ์ที่เข้ากันได้
|
รายการ, ตรวจสอบยอดคงเหลือ | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
สรุปอัตราการหายใจขณะนอนหลับ
dataType:
respiratory-rate-sleep-summaryfilter parameter: respiratory_rate_sleep_summary
ประเภทระเบียน: ตัวอย่าง
อุปกรณ์ที่เข้ากันได้
|
รายการ, ตรวจสอบยอดคงเหลือ | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ปริมาณการใช้ออกซิเจนสูงสุด (VO2 Max) ขณะวิ่ง
dataType:
run-vo2-maxfilter parameter: run_vo2_max
ประเภทระเบียน: ตัวอย่าง
อุปกรณ์ที่เข้ากันได้
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ระยะเวลาที่ไม่มีการเคลื่อนไหว
dataType:
sedentary-periodfilter parameter: sedentary_period
ประเภทระเบียน: Interval
อุปกรณ์ที่เข้ากันได้
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
เซ็นเซอร์อุณหภูมิผิวหนัง
v4beta
dataType:
skin-temperature-sensorsfilter parameter: skin_temperature_sensors
ประเภทระเบียน: ตัวอย่าง
อุปกรณ์ที่เข้ากันได้ |
list | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
การนอนหลับ
dataType:
sleepfilter parameter: sleep
ประเภทระเบียน: เซสชัน
อุปกรณ์ที่เข้ากันได้
|
list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
|
ขั้นตอน
dataType:
stepsfilter parameter: steps
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
อุปกรณ์ที่เข้ากันได้
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ข้อมูลความยาวสระว่ายน้ำ
dataType:
swim-lengths-datafilter parameter: swim_lengths_data
ประเภทระเบียน: Interval
อุปกรณ์ที่เข้ากันได้
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
อาการ
|
create, update, batchDelete | .logged_symptoms.writeonly |
|
เวลาในโซนอัตราการเต้นของหัวใจ
dataType:
time-in-heart-rate-zonefilter parameter: time_in_heart_rate_zone
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
แคลอรีทั้งหมด
dataType:
total-caloriesfilter parameter: total_calories
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
อุปกรณ์ที่เข้ากันได้
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ปริมาณการใช้ออกซิเจนสูงสุด
dataType:
vo2-maxfilter parameter: vo2_max
ประเภทระเบียน: ตัวอย่าง
อุปกรณ์ที่เข้ากันได้
|
รายการ, ตรวจสอบยอดคงเหลือ | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
น้ำหนัก
dataType:
weightfilter parameter: weight
ประเภทระเบียน: ตัวอย่าง
อุปกรณ์ที่เข้ากันได้
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
ข้อจำกัดการค้นหา
เมื่อค้นหาจุดข้อมูล, ข้อมูลสรุป หรือข้อมูลสรุปรายวันจาก API โปรดคำนึงถึงข้อจำกัดต่อไปนี้
- ข้อกำหนดของตัวกรอง: ประเภทข้อมูลที่ได้มาแบบอ่านอย่างเดียวบางประเภท เช่น
total-caloriesต้องใช้ตัวกรองที่ระบุเวลาเริ่มต้นของช่วงเวลา (โดยใช้เวลาจริงหรือเวลาตามปฏิทิน) - ขีดจำกัดช่วงการค้นหา: ปลายทางการรวมข้อมูลแบบ Rollup และแบบ Rollup รายวันจะบังคับใช้ขีดจำกัดช่วงการค้นหาสูงสุดตามประเภทข้อมูล ดังนี้
- ช่วงการค้นหาสูงสุด 14 วันสำหรับ
calories-in-heart-rate-zone,heart-rate,active-minutesและtotal-calories - ช่วงการค้นหาสูงสุด 90 วันสำหรับข้อมูลประเภทอื่นๆ ทั้งหมด
- ช่วงการค้นหาสูงสุด 14 วันสำหรับ
- ขนาดกรอบเวลาการรวม: เมื่อเรียกใช้ปลายทาง
rollUpระยะเวลาwindowSizeต้องมีอย่างน้อย 1 วินาที ("1s") ระบบจะปฏิเสธระยะเวลาที่สั้นกว่า 1 วินาทีด้วยINVALID_ARGUMENTนอกจากนี้ ให้เลือกwindowSizeที่เท่ากับหรือมากกว่าความละเอียดของพื้นที่เก็บข้อมูลที่สำคัญของประเภทข้อมูล (เช่น"60s"สำหรับประเภทข้อมูลที่มีช่วงเวลา 1 นาที เช่นstepsและdistance) เพื่อหลีกเลี่ยงการกระจายที่ไม่สม่ำเสมอในแต่ละช่วงเวลาย่อย โปรดดูรายละเอียดที่หัวข้อกรอบเวลาการรวมข้อมูลและความละเอียดของพื้นที่เก็บข้อมูล
ประเภทข้อมูลรายวันเทียบกับข้อมูลช่วงเวลา
สำหรับเมตริกทางสรีรวิทยาบางอย่าง เช่น ความแปรปรวนของอัตราการเต้นของหัวใจ (HRV) หรือความอิ่มตัวของออกซิเจน (SpO2) นั้น Google Health API จะให้ข้อมูล 2 ประเภทที่แตกต่างกัน ได้แก่ เวอร์ชันรายวันและเวอร์ชันช่วงเวลา การทำความเข้าใจความแตกต่างนี้เป็นกุญแจสำคัญในการเลือกเมตริกที่เหมาะสมสำหรับกรณีการใช้งานของคุณ
รายวัน: ข้อมูลสรุปที่รวบรวมไว้ล่วงหน้าเพียงรายการเดียวสำหรับทั้งวัน ใช้ตารางนี้สำหรับแนวโน้มระดับสูงและแดชบอร์ดรายวันเพื่อประหยัดการประมวลผล
ช่วงเวลา: การวัดค่าแบบละเอียดและมีความละเอียดสูงที่ดำเนินการตลอดทั้งวัน ใช้ข้อมูลนี้เพื่อสร้างแผนภูมิความผันผวนระหว่างวันหรือทำการวิเคราะห์เชิงลึกแบบรายชั่วโมง
ความพร้อมใช้งานของข้อมูล
การอัปเดตข้อมูลของผู้ใช้จะพร้อมใช้งานหลังจากที่ผู้ใช้ซิงค์เครื่องมือติดตามกิจกรรมหรือป้อนข้อมูลใหม่ลงในแอป Google Health ด้วยตนเองเท่านั้น อุปกรณ์ Fitbit และแอป Google Health จะซิงค์โดยอัตโนมัติทุกๆ 15 นาทีเมื่อแอป Google Health เปิดอยู่ในอุปกรณ์เคลื่อนที่ และทั้ง 2 อุปกรณ์มีการเชื่อมต่ออินเทอร์เน็ตที่ใช้งานได้และอยู่ในระยะสัญญาณบลูทูธ หากผู้ใช้ติดตามกิจกรรมโดยใช้ MobileTrack ระบบจะซิงค์ MobileTrack ทุกชั่วโมงตราบใดที่แอปเปิดอยู่
กำลังค้นหาข้อมูลย้อนหลัง
ประโยชน์หลักอย่างหนึ่งของ Google Health API คือความสามารถในการติดตามประสิทธิภาพของผู้ใช้และตรวจสอบสัญญาณชีพด้านสุขภาพเป็นระยะเวลานาน คุณสามารถค้นหาข้อมูลของผู้ใช้ย้อนหลังไปได้ไกลเท่าที่มีการบันทึกไว้ โดย API จะไม่จำกัดหรือกำหนดข้อจำกัดเกี่ยวกับปริมาณข้อมูลย้อนหลังที่แอปพลิเคชันของคุณสามารถใช้ได้
อย่างไรก็ตาม การค้นหาข้อมูลย้อนหลังจะยังคงอยู่ภายใต้การจำกัดอัตราคำขอมาตรฐาน Google Health API ใช้การแบ่งหน้าอัตโนมัติที่มีขนาดหน้าเฉพาะปลายทางเพื่อจัดการความเสถียรของระบบและป้องกันเพย์โหลดที่มากเกินไป โปรดทราบขอบเขตและลักษณะการทำงานต่อไปนี้
- การแบ่งหน้าอัตโนมัติ: หากคุณค้นหาข้อมูลเป็นระยะเวลานาน API จะแสดงผลลัพธ์หน้าแรกเท่านั้นจนถึงขีดจำกัดขนาดหน้าสำหรับปลายทางนั้น พร้อมกับ
nextPageTokenคุณต้องใช้nextPageTokenเพื่อขอหน้าถัดไป - ขนาดหน้าเว็บที่แปรผัน: ขีดจำกัดสูงสุดจะขึ้นอยู่กับปลายทางและประเภทข้อมูล สำหรับข้อมูลส่วนใหญ่ ขนาดหน้าจะถูกจำกัดไว้ที่สูงสุด 10,000 รายการ
อย่างไรก็ตาม สำหรับข้อมูลบางประเภท เช่น
exerciseและsleepขนาดหน้าเว็บเริ่มต้นและสูงสุดจะจำกัดอยู่ที่ 25 รายการ ตัวอย่างเช่น หากไคลเอ็นต์ขอข้อมูลการนอนหลับทั้งหมดในช่วง 10 ปีที่ผ่านมา API จะยังคงแสดงเซสชันการนอนหลับเพียง 25 เซสชันในหน้าแรก - ข้อจำกัดช่วงวันที่ของข้อมูลสรุป: สำหรับปลายทางการสรุปและการรวมข้อมูล (เช่น
rollUpและdailyRollUp) ช่วงวันที่ของคำค้นหาจะถูกจำกัดตามประเภทข้อมูล ดังนี้- ช่วงสูงสุด 14 วันสำหรับ
calories-in-heart-rate-zone,heart-rate,active-minutesและtotal-calories - ช่วงสูงสุด 90 วันสําหรับข้อมูลสรุปประเภทอื่นๆ ทั้งหมด
- ช่วงสูงสุด 14 วันสำหรับ
การดึงข้อมูลทั้งชุดจะต้องแบ่งหน้าตามลำดับ ทั้งนี้ขึ้นอยู่กับปริมาณข้อมูลย้อนหลังที่แอปพลิเคชันของคุณต้องการ โปรดคำนึงถึงเรื่องนี้เมื่อออกแบบกระบวนการซิงค์ข้อมูลของแอปพลิเคชัน
โปรดทำตามหลักเกณฑ์ต่อไปนี้เมื่อค้นหาข้อมูลย้อนหลังเพื่อให้มั่นใจว่าระบบทำงานได้อย่างมีประสิทธิภาพสูงสุดและหลีกเลี่ยงข้อผิดพลาดของ API
การซิงค์ข้อมูลแบบแบ่งระยะ (Hot Load เทียบกับ Cold Load)
- การโหลด "Hot" เริ่มต้น: ดึงข้อมูลและแสดงผลเฉพาะข้อมูลในช่วง 7-14 วันที่ผ่านมาในลำดับการโหลดหลัก วิธีนี้ช่วยให้ผู้ใช้เห็นข้อมูลได้ทันทีโดยไม่ต้องรอการค้นหาที่ใช้เวลานาน
- การโหลดข้อมูลย้อนหลังในเบื้องหลัง: มอบสิทธิ์การดึงข้อมูลย้อนหลังที่เก่ากว่าไปยังคิวแบบไม่พร้อมกันที่มีลำดับความสำคัญต่ำกว่าหรือกระบวนการเบื้องหลังหลังจากแสดงผล UI หลักแล้ว
การแบ่งกลุ่มการค้นหาเพื่อรวมข้อมูล
- เนื่องจากปลายทาง Rollup และ Daily Rollup บังคับใช้ขีดจำกัดช่วงวันที่สูงสุด (14 หรือ 90 วัน ขึ้นอยู่กับประเภทข้อมูล) คุณจึงต้องแบ่งการค้นหาการรวมข้อมูลย้อนหลังขนาดใหญ่ออกเป็นช่วงย่อยๆ ตามลำดับภายในขีดจำกัดเหล่านี้
- จัดกลุ่มหรือจัดลำดับการค้นหาย่อยเหล่านี้อย่างปลอดภัยเพื่อให้เป็นไปตามขีดจำกัดการทำงานพร้อมกันและรักษาตัวบ่งชี้ความคืบหน้าของ UI ให้คงที่
ใช้ประโยชน์จาก Roll-up ที่รวมไว้ล่วงหน้า
ปรับโครงสร้างแดชบอร์ดภาพรวมและแผนภูมิแนวโน้มเพื่อใช้ปลายทางสรุปที่รวมไว้ล่วงหน้า (เช่น DailyRollUpDataPoints) ซึ่งจะช่วยลดค่าใช้จ่ายในการประมวลผลบนแบ็กเอนด์และเวลาในการโอนเครือข่ายไปยังไคลเอ็นต์ได้อย่างมาก
การจัดการข้อผิดพลาดที่ยืดหยุ่น (การลองใหม่แบบอัจฉริยะ)
- ใช้การจัดการ Exponential Backoff ที่เข้มงวดเมื่อพบการจำกัดอัตราคำขอ (
429 Too Many Requests) และการหมดเวลาของเกตเวย์เซิร์ฟเวอร์ (504 Gateway Timeout) อย่าลองส่งเพย์โหลดขนาดใหญ่ที่ดำเนินการไม่สำเร็จซ้ำทันที การลองใหม่ทันทีจะเพิ่มความแออัดของแบ็กเอนด์และทำให้ระบบเสื่อมสภาพมากขึ้น
สิทธิ์เข้าถึงของบุคคลที่สาม
อุปกรณ์ Fitbit ไม่สามารถสื่อสารกับแอปพลิเคชันหรือบริการของบุคคลที่สามได้โดยตรง อุปกรณ์เหล่านี้ออกแบบมาเพื่อสื่อสารและซิงค์ข้อมูลกับแอป Google Health โดยเฉพาะ
อุปกรณ์จะซิงค์ข้อมูลโดยอัตโนมัติตลอดทั้งวัน เมื่อใดก็ตามที่แอป Google Health เปิดอยู่ หรือทุกๆ 15 นาทีหากบลูทูธทำงานอยู่และแอปทำงานอยู่เบื้องหลัง เมื่อกระบวนการซิงค์ข้อมูลนี้เสร็จสมบูรณ์แล้ว ข้อมูลจะพร้อมใช้งานสำหรับบริการของบุคคลที่สามผ่าน Google Health API
การกรองคุณภาพของข้อมูลและความถูกต้อง
Google Health API จะตรวจสอบการตรวจวัดระยะไกลของเซ็นเซอร์และยกเว้นการวัดที่ไม่ถูกต้องก่อนที่จะแสดงผลลัพธ์ เพื่อให้ตัวชี้วัดสุขภาพที่เชื่อถือได้โดยไม่ต้องใช้การกรองสัญญาณรบกวนฝั่งไคลเอ็นต์ที่กำหนดเอง
- สำหรับความอิ่มตัวของออกซิเจนในเลือดระดับนาที (
oxygen-saturation) API จะแสดงเฉพาะค่าที่อ่านได้ที่ตรวจสอบแล้ว และนำนาทีที่ทำเครื่องหมายว่าไม่ถูกต้องออกเนื่องจากการเคลื่อนไหวของแขน การสวมใส่นาฬิกาที่หลวม หรือคะแนนความเชื่อมั่นของเซ็นเซอร์ต่ำกว่า 50% รวมถึง 3 นาทีก่อนและหลังค่าที่อ่านได้ที่ไม่ถูกต้อง และช่วงเวลาที่ถูกต้องที่แยกออกมาซึ่งสั้นกว่า 4 นาที ด้วยเหตุนี้ ความครอบคลุมระดับนาทีจึงอาจมีข้อมูลไม่ครบถ้วนและอาจมีช่องว่าง ดูรายละเอียดได้ที่การกรอง SpO2 ระดับนาทีและความถูกต้องของข้อมูล
มาตรฐานระยะห่าง
ระยะทางในการออกกำลังกาย เช่น elevationGainMillimeters จะวัดเป็นมิลลิเมตรซึ่งเป็นหน่วยมาตรฐานด้วยเหตุผลต่อไปนี้
- การรักษาความแม่นยำของข้อมูล: เหตุผลสำคัญที่สุดในการใช้หน่วยมิลลิเมตรคือเพื่อให้แน่ใจว่าเราจะไม่สูญเสียความแม่นยำในข้อมูลที่เราอ่านและให้ไว้ การใช้หน่วยที่ละเอียด เช่น มิลลิเมตร ช่วยให้เราแสดงค่าการวัดที่มีความแม่นยำสูงได้
- การกำหนดมาตรฐาน: มิลลิเมตรเป็นหน่วยมาตรฐานที่ออกแบบมาเพื่อใช้ในบริการต่างๆ ของเรา ความสอดคล้องกันนี้ช่วยให้มั่นใจได้ว่านักพัฒนาแอปที่โต้ตอบกับส่วนต่างๆ ของ API จะได้รับประสบการณ์การใช้งานที่สอดคล้องกัน
- รองรับระบบการวัดที่หลากหลาย: การใช้หน่วยฐาน เช่น มิลลิเมตร ช่วยให้นักพัฒนาแอปแปลงเป็นหน่วยอื่นๆ ที่เลือกได้ง่าย ไม่ว่าจะทำงานกับระบบเมตริก ระบบอิมพีเรียล หรือระบบการวัดอื่นๆ
ความยาวของวันแบบแปรผัน
การจัดการเวลาโดย Health API จะให้ความสำคัญกับเวลาของผู้ใช้เพื่อพิจารณาความยาวของวันที่แปรผันซึ่งเกิดจากเวลาออมแสงหรือการเดินทาง จุดข้อมูลทุกจุดจะจัดเก็บไว้พร้อมกับการประทับเวลา UTC จริงและค่าชดเชย UTC ที่ใช้งานอยู่ในขณะที่เกิดเหตุการณ์ ซึ่งจะช่วยให้ระบบทำสิ่งต่อไปนี้ได้
- แมปเหตุการณ์กับช่วงเวลาที่แน่นอนในโลกจริง
- แก้ไขเวลาให้ตรงกับบริบทเฉพาะรายการของผู้ใช้สำหรับการรวบรวมข้อมูล
เวลาออมแสง
เมื่อถึงเวลาออมแสง การ "ปรับเวลาถอยหลัง" จะส่งผลให้วันตามปฏิทินมี 25 ชั่วโมง และการรวมข้อมูลสำหรับวันที่ดังกล่าวจะมีข้อมูล 25 ชั่วโมง การ "ปรับเวลาให้เร็วขึ้น" ส่งผลให้วันตามปฏิทินมี 23 ชั่วโมง โดยเวลาจะเปลี่ยนกลับไปเป็นเวลามาตรฐาน
ท่องเที่ยว
การเดินทางข้ามเขตเวลาอาจทำให้ระยะเวลาจริงของวันตามปฏิทิน 1 วันมีความแตกต่างกันมากยิ่งขึ้น
ใช้ปลายทาง dailyRollUp เพื่อปรับความแตกต่างของเขตเวลา โดยจะระบุแหล่งที่มาของข้อมูลไปยังวันในปฏิทินที่บันทึกข้อมูลโดยอัตโนมัติตามเวลาท้องถิ่นของผู้ใช้ ซึ่งจะ "เชื่อมโยง" วันเข้าด้วยกันอย่างมีประสิทธิภาพแม้ว่าเขตเวลาจะเปลี่ยนไปก็ตาม ดูรายละเอียดและตัวอย่างได้ที่รวมข้อมูลตามวันในปฏิทินในคู่มือข้อมูลรวม