Users.dataset: aggregate

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

ส่งคำขอ

คำขอ 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 ข้อกําหนดในการจัดทําข้อมูลรวม ต้องระบุข้อมูลจําเพาะAggregateBy อย่างน้อย 1 รายการ ระบบจะรวบรวมข้อมูลทั้งหมดที่ระบุโดยใช้เกณฑ์การจัดกลุ่มเดียวกัน โดยจะมีชุดข้อมูล 1 ชุดในการตอบกลับของข้อมูลจําเพาะโดยรวมทั้งหมด
aggregateBy[].dataTypeName string ประเภทข้อมูลที่จะรวม แหล่งข้อมูลทั้งหมดที่ระบุข้อมูลประเภทนี้จะให้ข้อมูลรวม การตอบกลับจะมีชุดข้อมูลเดียวสําหรับชื่อประเภทข้อมูลนี้ โดยชุดข้อมูลจะมีรหัสแหล่งข้อมูลเป็น :com.google.android.gms:aggregated หากผู้ใช้ไม่มีข้อมูลสําหรับประเภทข้อมูลนี้ ระบบจะแสดงผลชุดข้อมูลที่ว่างเปล่า หมายเหตุ: สามารถรวมข้อมูลได้ทั้งจาก dataTypeName หรือ dataSourceId ไม่ใช่ทั้งสองอย่าง
aggregateBy[].dataSourceId string รหัสแหล่งข้อมูลสําหรับรวบรวม ระบบจะรวมข้อมูลจากรหัสแหล่งข้อมูลที่ระบุเท่านั้นในการรวม ต้องระบุแหล่งข้อมูลนี้ หากระบุไว้ ขอบเขต OAuth ในข้อมูลรับรองที่ระบุจะต้องให้สิทธิ์การอ่านประเภทนี้ ชุดข้อมูลในการตอบสนองจะมีรหัสแหล่งข้อมูลเดียวกัน หมายเหตุ: ข้อมูลสามารถรวมกับ dataTypeName หรือ dataSourceId อย่างใดอย่างหนึ่งไม่ได้
filteredDataQualityStandard[] list อย่าป้อนข้อมูลในช่องนี้ ระบบจะไม่สนใจข้อความนี้
bucketByTime nested object ระบุให้รวบรวมข้อมูลตามช่วงเวลาเดียว ไม่รวมข้อกําหนดที่เก็บข้อมูลอื่นๆ
bucketByTime.durationMillis long ระบุที่เก็บข้อมูลผลลัพธ์ที่รวมข้อมูลตามกรอบเวลาของ MilMis ทั้งหมด กรอบเวลาที่ไม่มีข้อมูลจะรวมอยู่ในการตอบกลับที่มีชุดข้อมูลที่ว่างเปล่า
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 ระบุว่าจะมีการรวมข้อมูลแต่ละกลุ่มของกิจกรรมที่บันทึกไว้สําหรับผู้ใช้ คล้ายกับที่เก็บข้อมูล ByByActivitySegment แต่จะพิจารณากลุ่มกิจกรรมแต่ละกลุ่มแทนกลุ่มทั้งหมดในประเภทเดียวกัน ไม่รวมข้อกําหนดที่เก็บข้อมูลอื่นๆ
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 จะมีหมายเลขโปรเจ็กต์นักพัฒนาซอฟต์แวร์ของตนแสดงอยู่ในรหัสสตรีมข้อมูลแหล่งข้อมูล แทนที่จะเป็น packageName
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.groups ที่มีค่ากิจกรรมว่าง

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

ลองใช้เลย

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