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

ลองใช้งาน

ใช้ API Explorer ด้านล่างเพื่อเรียกใช้เมธอดนี้กับข้อมูลแบบสดและดูการตอบกลับ