คู่มือนี้จะอธิบายองค์ประกอบหลักของการตอบกลับใน Google Drive Activity API รวมถึงแสดงตัวอย่างวิธีการตีความ
วัตถุ
DriveActivity
- เป็นทรัพยากรหลักที่การค้นหาจาก Drive Activity API แสดง ซึ่งอธิบายผู้ดําเนินการอย่างน้อย 1 คนที่ดําเนินการอย่างน้อย 1 อย่างซึ่งส่งผลต่อเป้าหมายอย่างน้อย 1 รายการTimestamp
และTimeRange
— เหล่านี้อธิบายช่วงเวลาหนึ่งเมื่อกิจกรรมเกิดขึ้น หรือจุดเริ่มต้นและสิ้นสุดของเวลาที่กิจกรรมเกิดขึ้นในช่วงระยะเวลาหนึ่งActor
โดยทั่วไปแล้วActor
คือผู้ใช้ปลายทาง อย่างไรก็ตาม เหตุการณ์ในระบบอาจทริกเกอร์Action
เมื่อผู้ดูแลระบบทําหน้าที่เป็นผู้ใช้ ดําเนินการเอง หรือเมื่อดําเนินการโดยบุคคลที่ระบุตัวตนไม่ได้ ข้อความActor
จะสรุปกรณีการใช้งานเหล่านี้Target
-Target
เป็นออบเจ็กต์ของกิจกรรม เช่น ไฟล์ โฟลเดอร์ ไดรฟ์ที่แชร์ หรือความคิดเห็นของไฟล์ โปรดทราบว่าการทํางานหลายประเภทรองรับเป้าหมายมากกว่า 1 ประเภท ตัวอย่างเช่น แม้ว่าโดยทั่วไปEdit
จะมีผลกับไฟล์ในไดรฟ์ แต่การดําเนินการอื่นๆ เช่นRename
และCreate
อาจมีผลกับโฟลเดอร์ในไดรฟ์และไดรฟ์ที่แชร์ด้วย เป้าหมายที่ไม่ใช่รายการในไดรฟ์จะยังอ้างอิงเป้าหมายได้ เช่น โฟลเดอร์รูทของไดรฟ์หรือเอกสารหลักที่มีความคิดเห็นในไฟล์Action
- ทรัพยากรDriveActivity
แต่ละรายการมีการดําเนินการที่เกี่ยวข้องอย่างน้อย 1 รายการAction
เป็นแบบจบในตัว เช่น เหตุการณ์ โดยไม่เพียงแต่ประกอบด้วยประเภทและข้อมูลโดยละเอียดเกี่ยวกับการดําเนินการ แต่ยังเป็นActor
,Target
และTimestamp
หรือTimeRange
ด้วย เพื่อหลีกเลี่ยงการทําซ้ําAction
จะไม่ป้อนข้อมูลในช่องTarget
,Actor
หรือช่องของตนเองเมื่อเหมือนกันกับโดยรวมของDriveActivity
ActionDetail
- นี่คือประเภทที่เจาะจงและข้อมูลโดยละเอียดเกี่ยวกับAction
ตัวอย่างเช่น รายละเอียดการดําเนินการMove
มีตําแหน่งต้นทางและปลายทาง และPermissionChange
จะระบุว่าใครมีสิทธิ์เข้าถึงเอกสารบ้างและที่มีสิทธิ์ใด
ตัวอย่างคําตอบ
ผู้ใช้แก้ไขไฟล์ในไดรฟ์
ทรัพยากร DriveActivity
แบบง่ายอาจมีการดําเนินการเพียงรายการเดียว เช่น ผู้ใช้แก้ไขไฟล์ 1 รายการ
"activities":[{
"primary_action_detail":{ "edit":{} },
"actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
"targets":[ { "drive_item":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } } ],
"timestamp":{ "seconds":"1536794657", "nanos":791000000 },
"actions":[ { "detail":{ "edit":{} } } ]
}]
เอาต์พุตนี้ประกอบด้วยค่าต่อไปนี้
- ACCOUNT_ID: รหัสของผู้ใช้ ซึ่งใช้ร่วมกับ People API เพื่อดูข้อมูลเพิ่มเติมได้
- ITEM_ID: รหัสของรายการในไดรฟ์
- TITLE: ชื่อของรายการในไดรฟ์
โปรดทราบว่า Action
ในการตอบสนองนี้ไม่รวม Actor
, Target
หรือ TimeStamp
เนื่องจากตรงกับ DriveActivity
โดยรวม
ผู้ใช้ 2 รายแก้ไขไฟล์เดียวกันพร้อมกัน
เมื่อเปิดการรวม ระบบจะจัดกลุ่มการกระทําที่เกี่ยวข้องเป็น 1
DriveActivity
ในตัวอย่างนี้ การดําเนินการที่คล้ายกัน 2 รายการจะจัดกลุ่มไว้ ได้แก่ การกระทํา Edit
1 ประเภทจากผู้ใช้ 2 ราย
"activities":[{
"primary_action_detail":{ "edit":{} },
"actors":[
{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_2" } } }
],
"targets":[
{ "drive_item":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } }
],
"time_range":{
"start_time":{ "seconds":"1541089823", "nanos":712000000 },
"end_time":{ "seconds":"1541089830", "nanos":830000000 }
},
"actions":[
{
"detail":{ "edit":{} },
"actor":{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
"timestamp":{ "seconds":"1541089830", "nanos":830000000 }
},
{
"detail":{ "edit":{} },
"actor":{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_2" } } },
"timestamp":{ "seconds":"1541089823", "nanos":712000000 }
}
]
}]
เอาต์พุตนี้ประกอบด้วยค่าต่อไปนี้
- ACCOUNT_ID_1: รหัสของผู้ใช้คนแรก ซึ่งใช้ร่วมกับ People API เพื่อดูข้อมูลเพิ่มเติมได้
- ACCOUNT_ID_2: รหัสของผู้ใช้รายที่ 2
- ITEM_ID: รหัสของรายการในไดรฟ์
- TITLE: ชื่อของรายการในไดรฟ์
โปรดทราบว่าการดําเนินการในการตอบกลับนี้ไม่รวม Target
เนื่องจากเหมือนกันกับ DriveActivity
โดยรวม
ตัวอย่างนี้ยังแสดงให้เห็นวิธีที่แอปอาจใช้เฉพาะข้อมูลสรุปใน DriveActivity
โดยไม่ต้องดูการดําเนินการแต่ละอย่างด้วย การตอบกลับระบุว่าผู้ใช้ 2 คนแก้ไขไฟล์ที่ระบุในช่วงเวลาหนึ่ง
ผู้ใช้ย้ายไฟล์ 2 ไฟล์ไปยังไดเรกทอรีใหม่
ในตัวอย่างนี้ กลยุทธ์การรวมได้จัดกลุ่มการดําเนินการ Move
ที่เกี่ยวข้อง 2 รายการ เนื่องจากไฟล์ถูกย้ายจากแหล่งที่มาเดียวกันไปยังปลายทางเดียวกันพร้อมกัน
"activities":[{
"primary_action_detail":{
"move":{
"added_parents":[ { ... } ]
"removed_parents":[ { ... } ]
}
},
"actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
"targets":[
{ "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } },
{ "drive_item":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
],
"timestamp":{ "seconds":"1541090960", "nanos":985000000 },
"actions":[
{
"detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
"target":{ "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } }
},
{
"detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
"target":{ "drive_item":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
}
]
}]
เอาต์พุตนี้ประกอบด้วยค่าต่อไปนี้
- ACCOUNT_ID: รหัสของผู้ใช้ ซึ่งใช้ร่วมกับ People API เพื่อดูข้อมูลเพิ่มเติมได้
- ITEM_ID_1: รหัสของรายการในไดรฟ์แรก
- ITEM_ID_2: รหัสของรายการในไดรฟ์ที่ 2
- TITLE_1: ชื่อของรายการในไดรฟ์แรก
- TITLE_2: ชื่อรายการในไดรฟ์ที่ 2
โปรดทราบว่าการกระทําในการตอบสนองนี้ไม่รวม Actor
หรือ TimeStamp
เนื่องจากตรงกันกับ DriveActivity
โดยรวม