Model data Drive Activity API

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

Objek

  • DriveActivity—Ini adalah resource utama yang ditampilkan oleh kueri ke Drive Activity API. Metrik ini menjelaskan satu atau beberapa pelaku yang melakukan satu atau beberapa tindakan yang memengaruhi satu atau beberapa target.

  • Timestamp dan TimeRange—Keduanya menjelaskan, satu titik waktu saat aktivitas terjadi, atau awal dan akhir saat aktivitas terjadi selama rentang waktu tertentu.

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

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

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

  • ActionDetail—Ini adalah jenis spesifik dan informasi mendetail tentang Action. Misalnya, detail tindakan Move memiliki lokasi sumber dan tujuan, dan PermissionChange menentukan siapa yang kini dapat mengakses dokumen dan dengan hak istimewa apa.

Contoh respons

Pengguna mengedit file di Drive:

Resource DriveActivity sederhana mungkin hanya menyertakan satu tindakan, misalnya 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. API ini dapat digunakan dengan People API untuk mendapatkan informasi lebih lanjut.
  • ITEM_ID: ID item Drive.
  • TITLE: judul item Drive.

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

Dua pengguna mengedit file yang sama pada waktu yang sama:

Jika konsolidasi diaktifkan, tindakan terkait dikelompokkan menjadi satu DriveActivity. Dalam contoh ini, 2 tindakan serupa dikelompokkan: satu jenis tindakan Edit 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. API ini dapat digunakan dengan People API untuk mendapatkan informasi lebih lanjut.
  • ACCOUNT_ID_2: ID pengguna kedua.
  • ITEM_ID: ID item Drive.
  • TITLE: judul item Drive.

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

Contoh tersebut juga menggambarkan cara aplikasi mungkin hanya menggunakan informasi ringkasan di DriveActivity, tanpa melihat setiap tindakan. Responsnya menunjukkan bahwa 2 pengguna mengedit file tertentu selama rentang waktu tertentu.

Pengguna memindahkan 2 file ke direktori baru:

Dalam contoh ini, strategi konsolidasi mengelompokkan 2 tindakan Move terkait karena file dipindahkan dari sumber yang sama ke tujuan yang sama secara bersamaan.

"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. API ini dapat digunakan dengan People API untuk mendapatkan informasi lebih lanjut.
  • 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.

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