คู่มือนี้จะอธิบายวิธีส่งคำขอใน 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
ที่เกี่ยวข้องอื่นๆ ได้ เช่น ผู้ดําเนินการหลายคนที่แก้ไขรายการเดียว หรือ Actor
รายการหนึ่งที่ย้ายไฟล์หลายรายการไปยังโฟลเดอร์ใหม่ในไดรฟ์
แม้ว่า Action
แต่ละรายการจะมี Actor
รายการเดียวและ Target
รายการเดียว แต่หลังจากการจัดกลุ่มแล้ว 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"
}