คู่มือนี้จะอธิบายวิธีส่งคำขอใน Google Drive Activity API โดยใช้เมธอด activity.query
คีย์การค้นหา
คุณขอกิจกรรมได้ 2 วิธี ได้แก่ ส่งคำขอตามรายการใน Google ไดรฟ์ หรือส่งคำขอสำหรับทุกอย่างที่อยู่ภายในลำดับชั้นของโฟลเดอร์
itemName
: รูปแบบของคีย์นี้คือ "items/ITEM_ID" ซึ่งโดยปกติจะเป็นไฟล์ในไดรฟ์ หากคุณระบุโฟลเดอร์สำหรับคีย์นี้ ระบบจะแสดงกิจกรรมสำหรับโฟลเดอร์ เช่น เวลาที่สร้างหรือเปลี่ยนชื่อโฟลเดอร์ancestorName
: รูปแบบของคีย์นี้คือ "items/ITEM_ID" และการตอบกลับจะรวมกิจกรรมในรายการทั้งหมดในแผนผังย่อยใต้โฟลเดอร์นี้
เมื่อไม่ได้ตั้งค่าคีย์ ระบบจะใช้ ancestorName
ของ "items/root" เป็นค่าเริ่มต้นและแสดงกิจกรรมสำหรับรายการทั้งหมดในไดรฟ์
การใส่เลขหน้า
ช่อง pageSize
ให้คุณขอจำนวนกิจกรรมโดยประมาณที่จะแสดงผลในแต่ละคำตอบได้ จำนวนจริงของกิจกรรมที่ส่งคืนจะแตกต่างกัน
ดังนั้นแอปจึงควรจัดการปริมาณที่กำหนดเองในการตอบกลับ
มีการจำกัดขนาดหน้า หากแอปต้องใช้กิจกรรมจำนวนมาก ให้สร้างคำขอหลายรายการโดยใช้การใส่เลขหน้าแทนการตั้งค่า pageSize
จำนวนมาก
กล่าวอย่างเจาะจงคือ หากมีกิจกรรมให้ดึงข้อมูลมากกว่าที่แสดงในการตอบกลับ การตอบกลับก็จะมี nextPageToken
ด้วย หากต้องการเรียกดูผลลัพธ์เพิ่มเติม ให้ทำซ้ำคำขอเดิม แต่เพิ่มช่อง pageToken
ที่มีค่า nextPageToken
จากการตอบกลับก่อนหน้านี้
การผสานรวม
ออบเจ็กต์ Action
มักมีการจัดกลุ่มและแสดงผลภายในทรัพยากร DriveActivity
เดียว การจัดกลุ่ม Action
บางอย่างจะเกิดขึ้นทันที เช่น การย้ายรายการไปยังโฟลเดอร์ที่แชร์ซึ่งทำให้มีการเปลี่ยนแปลงสิทธิ์
นอกจากนี้ คุณยังระบุ ConsolidationStrategy
(บางครั้งเรียกว่าการรวมหรือแบบกลุ่ม) ในคำขอได้ด้วย การดำเนินการนี้จะเปิดใช้การจัดกลุ่มอื่นๆ ของออบเจ็กต์ Action
ที่เกี่ยวข้อง เช่น นักแสดงหลายคนแก้ไข 1 รายการ หรือ Actor
1 รายการย้ายไฟล์หลายไฟล์ไปยังโฟลเดอร์ไดรฟ์ใหม่
แม้ว่า Action
แต่ละรายการจะมี Actor
1 รายการและ Target
1 รายการ แต่หลังจากจัดกลุ่มแล้ว DriveActivity
ที่ได้จะมีนักแสดงหลายคนและมีเป้าหมายหลายรายการ
อย่างไรก็ตาม แม้ว่าจะจัดกลุ่มแล้ว แต่ก็จะมีการดำเนินการ "หลัก" ที่เป็นตัวแทนหรือที่สำคัญที่สุดของการดำเนินการทั้งหมดในทรัพยากร DriveActivity
เสมอ ทั้งนี้ขึ้นอยู่กับกลยุทธ์การรวมที่ขอ
ดังนั้น ไม่ว่าจะเปิดใช้การรวมหรือไม่ก็ตาม ลูกค้าหลายรายอาจเห็นเฉพาะเนื้อหาระดับบนสุดของทรัพยากร DriveActivity
(เช่น นักแสดงร่วมและเป้าหมายภายใน primaryActionDetail
) และไม่สนใจการดำเนินการโดยละเอียดในคำตอบ
ฟิลเตอร์
คุณจำกัดการดำเนินการที่อาจแสดงผลในทรัพยากร DriveActivity
ได้โดยการสร้างสตริง filter
ในคำขอ activity.query
มีช่องที่รองรับ 2 ช่อง ได้แก่ time
และ detail.action_detail_case
กรองตามเวลา
หากต้องการจำกัดการดำเนินการตามช่วงเวลา ให้ระบุชื่อช่อง time
ด้วยโอเปอเรเตอร์ที่เป็นตัวเลขสำหรับค่าวันที่ โดยจะมีการรวมตัวเลือก "AND" (และ) หรือไม่ก็ได้ ใช้หน่วยมิลลิวินาทีตั้งแต่วันที่ 1 ม.ค. 1970 หรือรูปแบบ RFC 3339 เช่น
time > 1452409200000 AND time <= 1492812924310
time >= "2016-01-10T01:02:03-05:00"
กรองตามประเภท
หากต้องการจำกัดตามประเภทการดำเนินการ ให้ใช้ชื่อช่อง detail.action_detail_case
ที่มีโอเปอเรเตอร์ "has" (:
) ใช้ค่าเดี่ยวหรือรายการประเภทการดำเนินการที่อนุญาตอยู่ในวงเล็บโดยคั่นด้วยเว้นวรรค หากต้องการดูรายการประเภทการดำเนินการ ให้ตรวจสอบออบเจ็กต์ ActionDetail
หากต้องการยกเว้นประเภทการทำงานจากการตอบกลับ ให้ใส่เครื่องหมายขีดกลาง (-
) ไว้ด้านหน้าสตริงตัวกรอง
ตัวอย่างประเภทการดำเนินการบางส่วนมีดังนี้
detail.action_detail_case:RENAME
detail.action_detail_case:(CREATE RESTORE)
-detail.action_detail_case:MOVE
ชุดค่าผสม
เงื่อนไขการกรองเหล่านี้จะรวมกันภายในสตริง filter
เดียวได้ เช่น
detail.action_detail_case:(CREATE EDIT RESTORE) time > 1452409200000
ตัวอย่างคำขอ
ขอกิจกรรมล่าสุด 10 รายการสำหรับรายการในไดรฟ์:
{
"itemName": "items/ITEM_ID",
"pageSize": 10
}
ขอกิจกรรมรวมสําหรับทุกรายการในไดรฟ์ด้านล่างโฟลเดอร์ระดับบน
{
"ancestorName": "items/ITEM_ID",
"consolidationStrategy": {
"legacy": {}
}
}
ขอการดำเนินการทั้งหมด MOVE
และ RENAME
กับรายการในไดรฟ์
{
"itemName": "items/ITEM_ID",
"filter": "detail.action_detail_case:(MOVE RENAME)"
}
ขอกิจกรรมทั้งหมดตั้งแต่วันที่ 1 มกราคม 2018 EST
{
"ancestorName": "items/root",
"filter": "time >= \"2018-01-01T00:00:00-05:00\""
}
ขอกิจกรรมทั้งหมดยกเว้นการดำเนินการ EDIT
รายการ ระหว่างเดือนมิถุนายน 2017 ตามเขตเวลา UTC:
{
"ancestorName": "items/root",
"filter": "time >= \"2018-06-01T00:00:00Z\" time < \"2018-07-01T00:00:00Z\" -detail.action_detail_case:EDIT"
}