Users.dataset: aggregate

รวบรวมข้อมูลบางประเภทหรือสตรีมหนึ่งๆ ลงในที่เก็บข้อมูลโดยแยกตามประเภท ประเภทของขอบเขต ชุดข้อมูลหลายชุดในประเภทต่างๆ และจากหลายชุด สามารถรวมแหล่งที่มาไว้ในประเภทที่เก็บข้อมูล 1 รายการต่อคำขอเท่านั้น ลองใช้เลย

ส่งคำขอ

คำขอ HTTP

POST https://www.googleapis.com/fitness/v1/users/userId/dataset:aggregate

พารามิเตอร์

ชื่อพารามิเตอร์ ค่า คำอธิบาย
พารามิเตอร์เส้นทาง
userId string ข้อมูลสรุปสำหรับบุคคลที่ระบุ ใช้ me เพื่อระบุ ผู้ใช้ที่ตรวจสอบสิทธิ์แล้ว ขณะนี้รองรับเฉพาะ me เท่านั้น

การให้สิทธิ์

คำขอนี้ต้องได้รับการให้สิทธิ์ตามขอบเขตต่อไปนี้อย่างน้อย 1 ขอบเขต

ขอบเขต
https://www.googleapis.com/auth/fitness.activity.read
https://www.googleapis.com/auth/fitness.activity.write
https://www.googleapis.com/auth/fitness.location.read
https://www.googleapis.com/auth/fitness.location.write
https://www.googleapis.com/auth/fitness.body.read
https://www.googleapis.com/auth/fitness.body.write
https://www.googleapis.com/auth/fitness.nutrition.read
https://www.googleapis.com/auth/fitness.nutrition.write
https://www.googleapis.com/auth/fitness.blood_pressure.read
https://www.googleapis.com/auth/fitness.blood_pressure.write
https://www.googleapis.com/auth/fitness.blood_glucose.read
https://www.googleapis.com/auth/fitness.blood_glucose.write
https://www.googleapis.com/auth/fitness.oxygen_saturation.read
https://www.googleapis.com/auth/fitness.oxygen_saturation.write
https://www.googleapis.com/auth/fitness.body_temperature.read
https://www.googleapis.com/auth/fitness.body_temperature.write
https://www.googleapis.com/auth/fitness.reproductive_health.read
https://www.googleapis.com/auth/fitness.reproductive_health.write

สำหรับข้อมูลเพิ่มเติม โปรดดูที่หน้าการตรวจสอบสิทธิ์และการให้สิทธิ์

เนื้อหาของคำขอ

ในเนื้อหาคำขอ ให้ข้อมูลในโครงสร้างต่อไปนี้

{
 
"startTimeMillis": long,
 
"endTimeMillis": long,
 
"aggregateBy": [
   
{
     
"dataTypeName": string,
     
"dataSourceId": string
   
}
 
],
 
"filteredDataQualityStandard": [
   
string
 
],
 
"bucketByTime": {
   
"durationMillis": long,
   
"period": {
     
"type": string,
     
"value": integer,
     
"timeZoneId": string
   
}
 
},
 
"bucketBySession": {
   
"minDurationMillis": long
 
},
 
"bucketByActivityType": {
   
"minDurationMillis": long,
   
"activityDataSourceId": string
 
},
 
"bucketByActivitySegment": {
   
"minDurationMillis": long,
   
"activityDataSourceId": string
 
}
}
ชื่อพร็อพเพอร์ตี้ ค่า คำอธิบาย หมายเหตุ
startTimeMillis long จุดเริ่มต้นของกรอบเวลา ระบบจะรวบรวมข้อมูลที่ตัดกับกรอบเวลานี้ เวลาในหน่วยมิลลิวินาทีตั้งแต่ Epoch รวมด้วย
endTimeMillis long จุดสิ้นสุดของกรอบเวลา ระบบจะรวบรวมข้อมูลที่ตัดกับกรอบเวลานี้ เวลาในหน่วยมิลลิวินาทีตั้งแต่ Epoch รวมด้วย
aggregateBy[] list ข้อกำหนดของข้อมูลที่จะรวม ต้องระบุข้อมูลจำเพาะของ totalBy อย่างน้อย 1 รายการ ระบบจะรวบรวมข้อมูลทั้งหมดที่ระบุโดยใช้เกณฑ์ที่เก็บข้อมูลเดียวกัน ในการตอบสนองจะมีชุดข้อมูล 1 ชุดสำหรับข้อมูลจำเพาะทั้งหมดของ totalBy
aggregateBy[].dataTypeName string ประเภทข้อมูลที่จะรวม แหล่งข้อมูลทั้งหมดที่ระบุข้อมูลประเภทนี้จะให้ข้อมูลในการรวม การตอบกลับจะมีชุดข้อมูลเดี่ยวสำหรับชื่อประเภทข้อมูลนี้ ชุดข้อมูลจะมีรหัสแหล่งข้อมูลเป็น Derived::com.google.android.gms:aggregated หากผู้ใช้ไม่มีข้อมูลสำหรับประเภทข้อมูลนี้ ระบบจะแสดงผลชุดข้อมูลที่ว่างเปล่า หมายเหตุ: ระบบจะรวบรวมข้อมูลโดยใช้ dataTypeName หรือ dataSourceId ไม่ใช่ทั้ง 2 รายการ
aggregateBy[].dataSourceId string รหัสแหล่งข้อมูลที่จะรวบรวม การสรุปจะรวมเฉพาะข้อมูลจากรหัสแหล่งข้อมูลที่ระบุเท่านั้น หากระบุไว้ จะต้องมีแหล่งข้อมูลนี้อยู่ ขอบเขต OAuth ในข้อมูลเข้าสู่ระบบที่ระบุต้องให้สิทธิ์การอ่านข้อมูลประเภทนี้ ชุดข้อมูลในการตอบกลับจะมีรหัสแหล่งข้อมูลเดียวกัน หมายเหตุ: ระบบจะรวบรวมข้อมูลโดยใช้ dataTypeName หรือ dataSourceId ไม่ใช่ทั้ง 2 รายการ
filteredDataQualityStandard[] list ไม่ป้อนข้อมูลในช่องนี้ ระบบจะไม่สนใจ
bucketByTime nested object ระบุว่าจะรวบรวมข้อมูลตามช่วงเวลาเดียว ไม่เกี่ยวข้องกับข้อกำหนดการเก็บข้อมูลอื่นๆ ร่วมกัน
bucketByTime.durationMillis long ระบุว่าที่เก็บข้อมูลผลลัพธ์จะรวบรวมข้อมูลตามกรอบเวลามิลลิวินาทีที่แน่นอน กรอบเวลาที่ไม่มีข้อมูลจะรวมอยู่ในการตอบกลับด้วยชุดข้อมูลที่ว่างเปล่า
bucketByTime.period nested object
bucketByTime.period.type string

ค่าที่ยอมรับได้ มีดังนี้
  • "day"
  • "month"
  • "week"
bucketByTime.period.value integer
bucketByTime.period.timeZoneId string org.joda.timezone.DateTimeZone
bucketBySession nested object ระบุว่าจะรวมข้อมูลตามเซสชันผู้ใช้ ข้อมูลที่ไม่ได้อยู่ในช่วงเวลาของเซสชันจะไม่รวมอยู่ในคำตอบ ไม่เกี่ยวข้องกับข้อกำหนดการเก็บข้อมูลอื่นๆ ร่วมกัน
bucketBySession.minDurationMillis long ระบุว่าระบบจะพิจารณาและใช้เฉพาะเซสชันที่นานกว่า minDurationMillis เป็นคอนเทนเนอร์สำหรับข้อมูลรวม
bucketByActivityType nested object ระบุว่าจะรวมข้อมูลตามประเภทของกิจกรรมที่ดำเนินการเมื่อมีการบันทึกข้อมูล ระบบจะรวบรวมข้อมูลทั้งหมดที่บันทึกระหว่างกิจกรรมบางประเภท (.สำหรับช่วงเวลาที่ระบุ) ไว้ในที่เก็บข้อมูลเดียวกัน ข้อมูลที่บันทึกไว้ขณะที่ผู้ใช้ไม่ได้ใช้งานอยู่จะไม่รวมอยู่ในคำตอบ ไม่เกี่ยวข้องกับข้อกำหนดการเก็บข้อมูลอื่นๆ ร่วมกัน
bucketByActivityType.minDurationMillis long ระบุว่าระบบจะพิจารณาและใช้เฉพาะกลุ่มกิจกรรมที่มีระยะเวลานานกว่า minDurationMillis เป็นคอนเทนเนอร์สำหรับข้อมูลรวม
bucketByActivityType.activityDataSourceId string ระบบจะใช้สตรีมกิจกรรมเริ่มต้นหากไม่ได้ระบุ activityDataSourceId ที่เฉพาะเจาะจง
bucketByActivitySegment nested object ระบุว่าข้อมูลจะรวมแต่ละกลุ่มกิจกรรมที่บันทึกไว้สำหรับผู้ใช้ คล้ายกับ StorageByActivitySegment แต่จะเก็บข้อมูลกลุ่มกิจกรรมแต่ละกลุ่มแทนกลุ่มทั้งหมดที่อยู่ในประเภทเดียวกัน ไม่เกี่ยวข้องกับข้อกำหนดการเก็บข้อมูลอื่นๆ ร่วมกัน
bucketByActivitySegment.minDurationMillis long ระบุว่าระบบจะพิจารณาและใช้เฉพาะกลุ่มกิจกรรมที่มีระยะเวลานานกว่า minDurationMillis เป็นคอนเทนเนอร์สำหรับข้อมูลรวม
bucketByActivitySegment.activityDataSourceId string ระบบจะใช้สตรีมกิจกรรมเริ่มต้นหากไม่ได้ระบุ activityDataSourceId ที่เฉพาะเจาะจง

คำตอบ

หากสำเร็จ เมธอดนี้จะแสดงเนื้อหาการตอบกลับซึ่งมีโครงสร้างต่อไปนี้

{
 
"bucket": [
   
{
     
"type": string,
     
"startTimeMillis": long,
     
"endTimeMillis": long,
     
"dataset": [
       
users.dataSources.datasets Resource
     
],
     
"session": {
       
"id": string,
       
"name": string,
       
"description": string,
       
"startTimeMillis": long,
       
"endTimeMillis": long,
       
"modifiedTimeMillis": long,
       
"application": {
         
"packageName": string,
         
"version": string,
         
"detailsUrl": string,
         
"name": string
       
},
       
"activityType": integer,
       
"activeTimeMillis": long
     
},
     
"activity": integer
   
}
 
]
}
ชื่อพร็อพเพอร์ตี้ ค่า คำอธิบาย หมายเหตุ
bucket[] list รายการที่เก็บข้อมูลที่มีข้อมูลรวม
bucket[].type string ประเภทของที่เก็บข้อมูลจะบ่งบอกประสิทธิภาพในการรวมข้อมูลในที่เก็บข้อมูล

ค่าที่ยอมรับได้ มีดังนี้
  • "activitySegment"
  • "activityType"
  • "session"
  • "time"
  • "unknown"
bucket[].startTimeMillis long เวลาเริ่มต้นสำหรับข้อมูลรวมในหน่วยมิลลิวินาทีตั้งแต่ Epoch รวมด้วย
bucket[].endTimeMillis long เวลาสิ้นสุดสำหรับข้อมูลรวมในหน่วยมิลลิวินาทีตั้งแต่ Epoch
bucket[].dataset[] list โดยจะมีชุดข้อมูล 1 ชุดต่อ AggregateBy ในคำขอ
bucket[].session nested object ใช้ได้กับ Bucket.Type.SESSION
bucket[].session.id string ตัวระบุที่ลูกค้าสร้างขึ้นซึ่งจะไม่ซ้ำกันในเซสชันทั้งหมดที่ผู้ใช้รายนี้เป็นเจ้าของ
bucket[].session.name string ชื่อเซสชันที่มนุษย์อ่านได้
bucket[].session.description string คำอธิบายของเซสชันนี้
bucket[].session.startTimeMillis long เวลาเริ่มต้นในหน่วยมิลลิวินาทีตั้งแต่ Epoch รวมด้วย
bucket[].session.endTimeMillis long เวลาสิ้นสุดในหน่วยมิลลิวินาทีตั้งแต่ Epoch รวมด้วย
bucket[].session.modifiedTimeMillis long การประทับเวลาที่ระบุว่าเซสชันได้รับการแก้ไขครั้งล่าสุดเมื่อใด
bucket[].session.application nested object แอปพลิเคชันที่สร้างเซสชัน
bucket[].session.application.packageName string ชื่อแพ็กเกจสำหรับแอปพลิเคชันนี้ ชื่อนี้จะใช้เป็นตัวระบุที่ไม่ซ้ำกันเมื่อสร้างโดยแอปพลิเคชัน Android แต่ไคลเอ็นต์ REST จะระบุไม่ได้ ไคลเอ็นต์ REST จะแสดงหมายเลขโปรเจ็กต์ของนักพัฒนาซอฟต์แวร์ในรหัสสตรีมข้อมูลของแหล่งข้อมูล แทนชื่อแพ็กเกจ
bucket[].session.application.version string เวอร์ชันของแอปพลิเคชัน คุณควรอัปเดตฟิลด์นี้เมื่อแอปพลิเคชันมีการเปลี่ยนแปลงในลักษณะที่ส่งผลต่อการคำนวณข้อมูล
bucket[].session.application.detailsUrl string URI ที่ไม่บังคับซึ่งสามารถใช้เพื่อลิงก์กลับไปยังแอปพลิเคชันได้
bucket[].session.application.name string ชื่อของแอปพลิเคชันนี้ ชื่อนี้จำเป็นสำหรับไคลเอ็นต์ REST แต่เราไม่บังคับให้ชื่อนี้มีลักษณะเฉพาะ เพื่อเป็นการอำนวยความสะดวกสำหรับนักพัฒนาซอฟต์แวร์คนอื่นๆ ที่ต้องการระบุว่า REST ใดเป็นการสร้างแอปพลิเคชันหรือแหล่งข้อมูล
bucket[].session.activityType integer ประเภทของกิจกรรมที่เซสชันนี้แสดง
bucket[].session.activeTimeMillis long เวลาที่ใช้งานเซสชัน แม้ start_time_millis และ end_time_millis จะกำหนดเวลาเซสชันเต็ม เวลาที่แอ็กทีฟจะสั้นลงและระบุด้วย active_time_millis หากทราบเวลาที่ไม่มีการใช้งานระหว่างเซสชัน ควรแทรกค่าดังกล่าวผ่านจุดข้อมูล com.google.activity.segment ที่มีค่ากิจกรรม STILL

bucket[].activity integer ใช้ได้กับ Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT