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

คู่มือนี้จะอธิบายคอมโพเนนต์หลักของคำตอบใน Google Drive Activity API เพื่อแสดงตัวอย่างและวิธีที่จะตีความ

วัตถุ

  • DriveActivity - นี่คือ ทรัพยากรหลักที่แสดงผลจากการค้นหาไปยัง Drive Activity API ทั้งนี้ อธิบายการดำเนินการอย่างน้อย 1 รายการที่มีผลต่อผู้ดำเนินการ เป้าหมายมากขึ้น

  • Timestamp และ TimeRange คือ อธิบายช่วงเวลาหนึ่งๆ ตามลำดับ เวลาที่กิจกรรม หรือจุดเริ่มต้นและสิ้นสุดของเวลาที่กิจกรรมเกิดขึ้นในช่วงเวลา

  • Actor - โดยทั่วไปแล้ว Actor คือ ผู้ใช้ปลายทาง แต่บางครั้ง เหตุการณ์ของระบบอาจเรียกเหตุการณ์ Action เมื่อผู้ดูแลระบบทำหน้าที่เป็น ผู้ใช้หรือตนเอง หรือเมื่อดำเนินการโดยบุคคลที่ระบุตัวตนไม่ได้ ข้อความ Actor สรุปกรณีเหล่านี้แต่ละกรณี

  • Target - Target คือออบเจ็กต์ กิจกรรม เช่น ไฟล์ โฟลเดอร์ ไดรฟ์ที่แชร์ หรือความคิดเห็นในไฟล์ โปรดทราบว่าประเภทการกระทำหลายประเภทรองรับเป้าหมายมากกว่า 1 ประเภท สำหรับ ตัวอย่างเช่น แม้ว่าโดยทั่วไปแล้ว Edit จะมีผลกับไฟล์ในไดรฟ์ และ การดำเนินการต่างๆ เช่น Rename และ Create จะมีผลกับไดรฟ์ได้ด้วย โฟลเดอร์และไดรฟ์ที่แชร์ เป้าหมายที่ไม่ใช่รายการในไดรฟ์ ยังคงอ้างอิงถึงโฟลเดอร์เดียวได้ เช่น โฟลเดอร์รูทของไดรฟ์หรือโฟลเดอร์ระดับบน เอกสารที่มีความคิดเห็นในไฟล์

  • Action - แต่ละ DriveActivity ทรัพยากรมีการกระทำที่เกี่ยวข้องอย่างน้อย 1 อย่าง Action เป็นแบบจบในตัว ชอบ event ซึ่งประกอบไปด้วยทั้งประเภทและข้อมูลแบบละเอียด เกี่ยวกับการทำงาน แต่ยังรวมถึง 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 คนแก้ไขไฟล์เดียวกันในเวลาไล่เลี่ยกัน ดังนี้

เมื่อเปิดใช้การรวม ระบบจะจัดกลุ่มการดําเนินการที่เกี่ยวข้องเป็นรายการเดียว DriveActivity ในตัวอย่างนี้ มีการจัดกลุ่มการกระทำที่คล้ายกัน 2 รายการ ได้แก่ 1 Edit ประเภทการดำเนินการจากผู้ใช้ 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 โดยรวม