โมเดลข้อมูล API กิจกรรมในไดรฟ์

คู่มือนี้อธิบายองค์ประกอบหลักของการตอบกลับใน 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 action detail มีตำแหน่งต้นทางและปลายทาง และ PermissionChange จะระบุผู้ที่เข้าถึงเอกสารได้ตอนนี้และด้วยสิทธิ์ใด

ตัวอย่างคำตอบ

โปรดดูตัวอย่างคำตอบต่อไปนี้

ผู้ใช้แก้ไขไฟล์ในไดรฟ์

ทรัพยากร DriveActivity อาจมีการดําเนินการเพียงรายการเดียว เช่น ผู้ใช้แก้ไขไฟล์ 1 ไฟล์

"activities":[{
  "primaryActionDetail":{ "edit":{} },
  "actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID" } } } ],
  "targets":[ { "driveItem":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } } ],
  "timestamp":{ "seconds":"1536794657", "nanos":791000000 },
  "actions":[ { "detail":{ "edit":{} } } ]
}]

เอาต์พุตนี้มีค่าต่อไปนี้

  • ACCOUNT_ID: รหัสของผู้ใช้ ซึ่งสามารถใช้กับ ผู้คน API เพื่อดูข้อมูลเพิ่มเติม
  • ITEM_ID: รหัสของรายการในไดรฟ์
  • TITLE: ชื่อรายการในไดรฟ์

โปรดทราบว่าออบเจ็กต์ Action ในการตอบกลับนี้จะไม่รวม Actor, Target หรือ timestamp เนื่องจากค่าเหล่านี้เหมือนกับ DriveActivity โดยรวม

ผู้ใช้ 2 คนแก้ไขไฟล์เดียวกันในช่วงเวลาใกล้เคียงกัน

เมื่อใช้ ConsolidationStrategy ระบบจะจัดกลุ่มการดําเนินการที่เกี่ยวข้องไว้ใน DriveActivity รวม 1 รายการ ในตัวอย่างนี้ ระบบจะจัดกลุ่มการดําเนินการที่คล้ายกัน 2 รายการ ได้แก่ Editการดําเนินการประเภทหนึ่งจากผู้ใช้ 2 ราย

"activities":[{
  "primaryActionDetail":{ "edit":{} },
  "actors":[
    { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1" } } },
    { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2" } } }
  ],
  "targets":[
    { "driveItem":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } }
  ],
  "timeRange":{
    "startTime":{ "seconds":"1541089823", "nanos":712000000 },
    "endTime":{ "seconds":"1541089830", "nanos":830000000 }
  },
  "actions":[
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1" } } },
      "timestamp":{ "seconds":"1541089830", "nanos":830000000 }
    },
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2" } } },
      "timestamp":{ "seconds":"1541089823", "nanos":712000000 }
    }
  ]
}]

เอาต์พุตนี้ประกอบด้วยค่าต่อไปนี้

  • ACCOUNT_ID_1: รหัสของผู้ใช้รายแรก ซึ่งสามารถใช้กับ People API เพื่อดูข้อมูลเพิ่มเติม
  • ACCOUNT_ID_2: รหัสของผู้ใช้คนที่ 2
  • ITEM_ID: รหัสของรายการในไดรฟ์
  • TITLE: ชื่อของรายการในไดรฟ์

โปรดทราบว่าออบเจ็กต์ Action ในการตอบกลับนี้ไม่มี Target เนื่องจากค่านี้เหมือนกับ DriveActivity โดยรวม

ตัวอย่างนี้ยังแสดงให้เห็นวิธีที่แอปอาจใช้เฉพาะข้อมูลสรุปใน DriveActivity โดยไม่ดูที่การดําเนินการแต่ละรายการ การตอบกลับบ่งชี้ว่าผู้ใช้ 2 คนแก้ไขไฟล์หนึ่งๆ ในช่วงเวลาหนึ่ง

ผู้ใช้ย้ายไฟล์ 2 ไฟล์ไปยังไดเรกทอรีใหม่

ในตัวอย่างนี้ ConsolidationStrategy จัดกลุ่มการดําเนินการ Move ที่เกี่ยวข้อง 2 รายการไว้ด้วยกันเนื่องจากมีการย้ายไฟล์จากแหล่งที่มาเดียวกันไปยังปลายทางเดียวกันในเวลาเดียวกัน

"activities":[{
  "primaryActionDetail":{
    "move":{
      "addedParents":[ { ... } ]
      "removedParents":[ { ... } ]
    }
  },
  "actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID" } } } ],
  "targets":[
    { "driveItem":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } },
    { "driveItem":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
  ],
  "timestamp":{ "seconds":"1541090960", "nanos":985000000 },
  "actions":[
    {
      "detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
      "target":{ "driveItem":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } }
    },
    {
      "detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
      "target":{ "driveItem":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
    }
  ]
}]

เอาต์พุตนี้ประกอบด้วยค่าต่อไปนี้

  • ACCOUNT_ID: รหัสของผู้ใช้ ซึ่งสามารถใช้กับ ผู้คน API เพื่อดูข้อมูลเพิ่มเติม
  • ITEM_ID_1: รหัสของรายการแรกในไดรฟ์
  • ITEM_ID_2: รหัสของรายการที่ 2 ในไดรฟ์
  • TITLE_1: ชื่อของรายการแรกในไดรฟ์
  • TITLE_2: ชื่อของรายการที่ 2 ในไดรฟ์

โปรดทราบว่าออบเจ็กต์ Action ในการตอบกลับนี้ไม่มี Actor หรือ timestamp เนื่องจากค่าเหล่านี้เหมือนกับ DriveActivity โดยรวม