Model data Drive Activity API

Panduan ini menjelaskan komponen utama respons di Google Drive Activity API, menunjukkan contoh-contoh dan cara menafsirkannya.

Objek

  • DriveActivity—Ini adalah resource utama yang ditampilkan oleh kueri ke Drive Activity API. Ini menggambarkan satu atau lebih pelaku yang melakukan satu atau lebih tindakan yang memengaruhi satu atau lebih banyak target.

  • Timestamp dan TimeRange—Ini menggambarkan satu titik waktu ketika aktivitas atau awal dan akhir dari aktivitas yang terjadi dalam rentang waktu baik.

  • Actor—Biasanya, Actor adalah seorang pengguna akhir. Namun, terkadang, peristiwa sistem dapat memicu Action saat admin bertindak sebagai sebagai pengguna atau dirinya sendiri, atau jika dilakukan oleh orang yang tidak dapat diidentifikasi. Tujuan Pesan Actor mengenkapsulasi setiap kasus ini.

  • TargetTarget adalah objek aktivitas tertentu, seperti file, folder, drive bersama, atau komentar file. Perhatikan bahwa banyak jenis tindakan mendukung lebih dari satu jenis target. Sebagai meskipun Edit umumnya berlaku untuk file Drive, tindakan seperti Rename dan Create juga dapat diterapkan ke Drive folder dan drive bersama. Target yang bukan item Drive masih dapat merujuk ke salah satunya, seperti folder root drive atau dokumen yang berisi komentar file.

  • Action—Setiap DriveActivity resource memiliki satu atau beberapa tindakan terkait. Action bersifat mandiri, seperti peristiwa, yang tidak hanya terdiri dari jenis dan informasi mendetail tentang tindakan, tetapi juga Actor, Target, dan Timestamp atau TimeRange. Untuk menghindari redundansi, Action tidak mengisinya sendiri Target, Actor, atau waktu jika sama dengan DriveActivity.

  • ActionDetail—Ini adalah jenis tertentu dan informasi mendetail tentang Action. Sebagai contoh, Detail tindakan Move memiliki lokasi sumber dan tujuan, serta lokasi PermissionChange menentukan siapa saja yang kini dapat mengakses dokumen dan dengan apa hak istimewa pengguna.

Contoh respons

Pengguna mengedit file di Drive:

Resource DriveActivity sederhana mungkin hanya menyertakan satu tindakan, seperti pengguna mengedit satu file.

"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":{} } } ]
}]

Output ini mencakup nilai-nilai berikut:

  • ACCOUNT_ID: ID pengguna. ID ini dapat digunakan dengan People API untuk mendapatkan informasi selengkapnya.
  • ITEM_ID: ID item Drive.
  • TITLE: judul item Drive.

Perlu diperhatikan bahwa Action dalam respons ini tidak menyertakan Actor, Target, atau TimeStamp karena sama dengan DriveActivity secara keseluruhan.

Dua pengguna mengedit file yang sama pada waktu yang sama:

Saat penggabungan diaktifkan, tindakan terkait akan dikelompokkan menjadi satu DriveActivity. Dalam contoh ini, 2 tindakan serupa dikelompokkan: satu Edit jenis tindakan dari 2 pengguna berbeda.

"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 }
    }
  ]
}]

Output ini mencakup nilai-nilai berikut:

  • ACCOUNT_ID_1: ID pengguna pertama. Dapat digunakan dengan People API untuk mendapatkan informasi selengkapnya.
  • ACCOUNT_ID_2: ID pengguna kedua.
  • ITEM_ID: ID item Drive.
  • TITLE: judul item Drive.

Perlu diperhatikan bahwa tindakan dalam respons ini tidak menyertakan Target karena sama dengan keseluruhan DriveActivity.

Contoh tersebut juga menggambarkan bagaimana aplikasi mungkin hanya menggunakan informasi ringkasan di DriveActivity, tanpa melihat masing-masing tindakan. Respons menunjukkan bahwa 2 pengguna mengedit file tertentu selama jangka waktu tertentu.

Pengguna memindahkan 2 file ke direktori baru:

Dalam contoh ini, strategi konsolidasi mengelompokkan 2 tindakan Move yang terkait karena file dipindahkan dari sumber yang sama ke tujuan yang sama di perangkat lain di waktu yang sama.

"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":{} } }
    }
  ]
}]

Output ini mencakup nilai-nilai berikut:

  • ACCOUNT_ID: ID pengguna. ID ini dapat digunakan dengan People API untuk mendapatkan informasi selengkapnya.
  • ITEM_ID_1: ID item Drive pertama.
  • ITEM_ID_2: ID item Drive kedua.
  • TITLE_1: judul item Drive pertama.
  • TITLE_2: judul item Drive kedua.

Perlu diperhatikan bahwa tindakan dalam respons ini tidak menyertakan Actor atau TimeStamp karena sama dengan DriveActivity secara keseluruhan.