Membuat permintaan di Google Drive Activity API

Panduan ini menjelaskan cara membuat permintaan di Google Drive Activity API menggunakan metode activity.query.

Kunci kueri

Ada 2 cara untuk meminta aktivitas: berdasarkan item Google Drive, atau untuk semua yang ada di bawah hierarki folder.

  • itemName: Format untuk kunci ini adalah "items/ITEM_ID". Biasanya ini adalah file di Drive. Jika Anda menentukan folder untuk kunci ini, aktivitas untuk folder tersebut akan ditampilkan, seperti kapan folder dibuat atau diganti namanya.

  • ancestorName: Format untuk tombol ini adalah "items/ITEM_ID", dan respons menyertakan aktivitas pada semua item dalam subhierarki di bawah folder ini.

Jika tidak ada kunci yang ditetapkan, maka secara default ancestorName "item/root" akan digunakan dan menampilkan aktivitas untuk semua item di Drive Anda.

Penomoran halaman

Kolom pageSize memungkinkan Anda meminta perkiraan jumlah aktivitas yang akan ditampilkan dalam setiap respons. Jumlah sebenarnya dari aktivitas yang ditampilkan akan bervariasi, sehingga aplikasi Anda harus menangani jumlah arbitrer dalam respons.

Ukuran halaman dibatasi. Jika aplikasi memerlukan banyak aktivitas, buat beberapa permintaan menggunakan penomoran halaman, bukan menetapkan nilai besar untuk pageSize. Khususnya, jika mungkin ada lebih banyak aktivitas untuk diambil daripada yang disertakan dalam respons, respons juga akan berisi nextPageToken. Untuk mengambil lebih banyak hasil, ulangi permintaan yang sama, tetapi tambahkan kolom pageToken dengan nilai nextPageToken dari respons sebelumnya.

Konsolidasi

Objek Action sering dikelompokkan dan ditampilkan dalam satu resource DriveActivity. Beberapa pengelompokan Action terjadi secara tiba-tiba, seperti memindahkan item ke folder bersama yang memicu perubahan izin.

Anda juga dapat menentukan ConsolidationStrategy (terkadang disebut agregasi atau pengelompokan) dalam permintaan. Hal ini memungkinkan pengelompokan lain dari objek Action terkait, seperti beberapa aktor mengedit satu item, atau satu Actor yang memindahkan beberapa file ke dalam folder Drive baru.

Meskipun setiap Action memiliki satu Actor dan satu Target, setelah pengelompokan, DriveActivity yang dihasilkan dapat memiliki beberapa pelaku dan beberapa target. Namun, meskipun setelah pengelompokan, selalu ada tindakan "utama" yang merupakan tindakan yang mewakili, atau yang paling penting, dari semua tindakan di resource DriveActivity, bergantung pada strategi konsolidasi yang diminta.

Akibatnya, baik konsolidasi diaktifkan atau tidak, banyak klien mungkin cukup melihat konten tingkat atas dari resource DriveActivity saja (seperti aktor dan target kolektif dalam primaryActionDetail) dan mengabaikan tindakan mendetail dalam respons.

Filter

Anda dapat membatasi tindakan yang mungkin ditampilkan dalam resource DriveActivity dengan membuat string filter dalam permintaan activity.query. Ada 2 kolom yang didukung: time dan detail.action_detail_case.

Filter menurut waktu

Untuk membatasi tindakan berdasarkan rentang waktu, tentukan nama kolom time dengan operator numerik pada nilai tanggal, yang digabungkan dengan "AND" opsional. Gunakan milidetik sejak 1 Januari 1970 atau format RFC 3339, seperti:

  • time > 1452409200000 AND time <= 1492812924310
  • time >= "2016-01-10T01:02:03-05:00"

Filter menurut jenis

Untuk membatasi menurut jenis tindakan, terapkan nama kolom detail.action_detail_case dengan operator "has" (:). Gunakan nilai tunggal atau daftar jenis tindakan yang diizinkan dalam tanda kurung, dipisahkan dengan spasi. Untuk menemukan daftar jenis tindakan, tinjau objek ActionDetail.

Untuk mengecualikan jenis tindakan dari respons, tambahkan tanda hubung (-) di awal string filter.

Berikut beberapa contoh jenis tindakan:

  • detail.action_detail_case:RENAME
  • detail.action_detail_case:(CREATE RESTORE)
  • -detail.action_detail_case:MOVE

Kombinasi

Kondisi pemfilteran ini dapat digabungkan dalam satu string filter, seperti:

  • detail.action_detail_case:(CREATE EDIT RESTORE) time > 1452409200000

Contoh permintaan

Meminta 10 aktivitas terbaru untuk item Drive:

{
  "itemName": "items/ITEM_ID",
  "pageSize": 10
}

Minta aktivitas gabungan untuk setiap item Drive di bawah folder ancestor:

{
  "ancestorName": "items/ITEM_ID",
  "consolidationStrategy": {
    "legacy": {}
  }
}

Minta semua tindakan MOVE dan RENAME pada item Drive:

{
  "itemName": "items/ITEM_ID",
  "filter": "detail.action_detail_case:(MOVE RENAME)"
}

Meminta semua aktivitas sejak 1 Januari 2018 EST:

{
  "ancestorName": "items/root",
  "filter": "time >= \"2018-01-01T00:00:00-05:00\""
}

Meminta semua aktivitas, kecuali tindakan EDIT, selama Juni 2017 UTC:

{
  "ancestorName": "items/root",
  "filter": "time >= \"2018-06-01T00:00:00Z\" time < \"2018-07-01T00:00:00Z\" -detail.action_detail_case:EDIT"
}