Berlangganan peristiwa Google Drive

Halaman ini menjelaskan peristiwa Google Drive yang dapat dilanggan aplikasi Anda menggunakan Google Workspace Events API. Setelah memutuskan jenis peristiwa yang Anda butuhkan, buat langganan untuk mulai menerima peristiwa dari Drive.

Untuk mempelajari lebih lanjut cara mengembangkan aplikasi untuk Drive, lihat Ringkasan Google Drive API.

Peristiwa Drive yang didukung

Langganan Google Workspace memungkinkan Anda menerima peristiwa tentang jenis perubahan berikut di Drive:

  • Proposal akses dibuat atau diselesaikan pada file.

  • Komentar dibuat, diedit, diselesaikan, dibuka kembali, atau dihapus pada file atau file dalam drive bersama.

  • file adalah:

    • Ditambahkan ke folder atau drive bersama.
    • Dipindahkan ke folder atau drive bersama.
    • Revisi yang diedit atau baru diupload.
    • Dihapus ke sampah atau dihapus dari sampah.
    • Diganti namanya (judul file atau folder diubah).
  • Balasan dibuat, diedit, atau dihapus pada rangkaian komentar dalam file atau file dalam drive bersama.

Resource yang dapat Anda pantau untuk peristiwa

Untuk menerima peristiwa, Anda menentukan resource Drive yang akan dipantau, yang disebut resource target langganan.

Google Workspace Events API mendukung target resource berikut untuk Drive:

Resource target Format Batasan (jika berlaku)
File //drive.googleapis.com/files/FILE

dengan FILE adalah ID di nama resource dari resource files Drive API. Anda bisa mendapatkan ID dari URL file atau menggunakan metode files.list.

Pengguna yang mengizinkan langganan harus memiliki izin pada file dalam langganan relatif terhadap peristiwa berlangganan.
Drive bersama //drive.googleapis.com/drives/DRIVE

dengan DRIVE adalah ID di nama resource dari resource drives Drive API. Anda bisa mendapatkan ID dari URL drive atau menggunakan metode drives.list.

Langganan hanya menerima peristiwa untuk item di drive bersama tempat pengguna menjadi anggota melalui Akun Google Workspace atau Akun Google mereka.

Jenis peristiwa untuk membuat langganan

Saat membuat langganan ke resource Drive, Anda menggunakan kolom eventTypes[] untuk menentukan jenis peristiwa yang ingin Anda terima. Jenis peristiwa diformat sesuai dengan spesifikasi CloudEvents, seperti google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Misalnya, untuk menerima peristiwa tentang file yang dibuat di folder atau drive bersama, Anda menentukan file sebagai resource target, dan jenis peristiwa sebagai google.workspace.drive.file.v3.created. Untuk menerima peristiwa tentang proposal akses yang dibuat pada file, Anda menentukan proposal akses sebagai resource target, dan jenis peristiwa sebagai google.workspace.drive.accessproposal.v3.created. Untuk mempelajari lebih lanjut cara kerja peristiwa, lihat Struktur peristiwa Google Workspace.

Tabel berikut menampilkan jenis peristiwa yang didukung untuk langganan ke resource Drive:

Jenis peristiwa Format Data resource
Langganan ke file dan drive bersama  
Proposal akses dibuat pada file.

google.workspace.drive.accessproposal.v3.created

accessproposal

Proposal akses diselesaikan pada file.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Komentar dibuat pada file atau file dalam drive bersama.

google.workspace.drive.comment.v3.created

comment

Komentar diedit pada file atau file dalam drive bersama.

google.workspace.drive.comment.v3.edited

comment

Komentar diselesaikan pada file atau file dalam drive bersama.

google.workspace.drive.comment.v3.resolved

comment

Komentar dibuka kembali pada file atau file dalam drive bersama.

google.workspace.drive.comment.v3.reopened

comment

Komentar dihapus pada file atau file dalam drive bersama.

google.workspace.drive.comment.v3.deleted

comment

File ditambahkan ke folder atau drive bersama.

google.workspace.drive.file.v3.created

file

File dipindahkan ke folder atau drive bersama.

google.workspace.drive.file.v3.moved

file

File diedit atau revisi baru diupload.

google.workspace.drive.file.v3.contentChanged

file

File dihapus.

google.workspace.drive.file.v3.deleted

file

File dibuang ke sampah.

google.workspace.drive.file.v3.trashed

file

File dihapus dari sampah.

google.workspace.drive.file.v3.untrashed

file

Nama file diganti.

google.workspace.drive.file.v3.renamed

file

Balasan dibuat pada rangkaian komentar dalam file atau file dalam drive bersama.

google.workspace.drive.reply.v3.created

reply

Balasan diedit pada rangkaian komentar dalam file atau file dalam drive bersama.

google.workspace.drive.reply.v3.edited

reply

Balasan dihapus di rangkaian komentar dalam file atau file dalam drive bersama.

google.workspace.drive.reply.v3.deleted

reply

Data peristiwa

Bagian ini menjelaskan data peristiwa dan contoh payload untuk peristiwa di Drive.

Saat langganan Google Workspace Anda menerima acara dari Drive, kolom data berisi payload untuk acara tersebut. Payload ini memiliki informasi tentang resource Google Workspace yang berubah. Misalnya, jika Anda telah berlangganan peristiwa file, payload untuk peristiwa ini berisi informasi tentang resource files yang berubah.

Data resource di payload peristiwa

Saat membuat langganan, Anda dapat menentukan apakah ingin payload menyertakan detail tentang resource, atau hanya nama resource. Misalnya, jika Anda ingin menerima peristiwa tentang file di Drive, Anda dapat menentukan kolom resource files mana yang ingin Anda terima dalam payload peristiwa.

Tabel berikut memberikan contoh payload JSON untuk langganan ke resource Drive. ID file berisi huruf, angka, dan beberapa karakter khusus yang disusun sebagai files/^[01][0-9a-zA-Z_-]+$/. Misalnya, files/1aaabbbAAABBB111222-_. Untuk setiap peristiwa yang diterima langganan, payload muncul di kolom data peristiwa:

Contoh Jenis peristiwa Payload JSON

Pengguna membuat proposal akses pada file.

google.workspace.drive.accessproposal.v3.created

Mencakup data resource
{
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "alex@altostrat.com",
        "requesterEmailAddress": "kai@cymbalgroup.com",
        "requestMessage": "grant me access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
}
      
Mengecualikan data resource
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Pengguna menyelesaikan proposal akses pada file.

google.workspace.drive.accessProposal.v3.resolved

Mencakup data resource
{
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "alex@altostrat.com",
        "requesterEmailAddress": "kai@cymbalgroup.com",
        "requestMessage": "resolve access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
}
      
Mengecualikan data resource
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Pengguna membuat komentar pada file.

google.workspace.drive.comment.v3.created

Mencakup data resource
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Mengecualikan data resource
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Pengguna mengedit komentar pada file.

google.workspace.drive.comment.v3.edited

Mencakup data resource
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Mengecualikan data resource
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Pengguna menyelesaikan komentar pada file.

google.workspace.drive.comment.v3.resolved

Mencakup data resource
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Mengecualikan data resource
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Pengguna membuka kembali komentar pada file.

google.workspace.drive.comment.v3.reopened

Mencakup data resource
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Mengecualikan data resource
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Pengguna menghapus komentar pada file.

google.workspace.drive.comment.v3.deleted

Mencakup data resource
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Mengecualikan data resource
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Pengguna menambahkan file ke folder atau drive bersama.

google.workspace.drive.file.v3.created

Mencakup data resource
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Mengecualikan data resource
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Pengguna memindahkan file ke folder atau drive bersama.

google.workspace.drive.file.v3.moved

Mencakup data resource
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Mengecualikan data resource
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Pengguna mengedit file atau revisi baru diupload.

google.workspace.drive.file.v3.contentChanged

Mencakup data resource
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Mengecualikan data resource
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Pengguna menghapus file.

google.workspace.drive.file.v3.deleted

Mencakup data resource
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Mengecualikan data resource
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Pengguna membuang file ke sampah.

google.workspace.drive.file.v3.trashed

Mencakup data resource
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Mengecualikan data resource
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Pengguna memulihkan file dari sampah.

google.workspace.drive.file.v3.untrashed

Mencakup data resource
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Mengecualikan data resource
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Pengguna mengganti nama file atau folder.

google.workspace.drive.file.v3.renamed

Mencakup data resource
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Mengecualikan data resource
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Pengguna membuat balasan komentar pada rangkaian pesan komentar.

google.workspace.drive.reply.v3.created

Mencakup data resource
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Mengecualikan data resource
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Pengguna mengedit balasan komentar pada rangkaian pesan komentar.

google.workspace.drive.reply.v3.edited

Mencakup data resource
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Mengecualikan data resource
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Pengguna menghapus balasan komentar pada rangkaian komentar.

google.workspace.drive.reply.v3.deleted

Mencakup data resource
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Mengecualikan data resource
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Batasan

  • Jika kolom boolean includeDescendants di DriveOptions adalah true, langganan Drive di folder dan drive bersama akan selalu mengirimkan peristiwa, meskipun file yang memicu peristiwa berada di banyak lapisan di bawah folder yang digunakan untuk langganan Drive.
  • Meskipun Anda telah membuat langganan di folder, Anda mungkin tidak menerima semua peristiwa dalam hierarki file karena pengguna atau aplikasi mungkin tidak diberi akses ke peristiwa tersebut. Dalam hal ini, langganan tetap aktif, tetapi Anda tidak akan menerima peristiwa apa pun untuk resource yang tidak dapat Anda akses.
  • Langganan didukung untuk peristiwa pada semua file dan folder, tetapi tidak pada folder root drive bersama. Langganan hanya didukung untuk file dan folder di dalam drive bersama. Perubahan yang dilakukan langsung pada folder root drive bersama tidak akan memicu peristiwa.
  • Pengguna yang mengizinkan langganan harus memiliki izin pada file yang sesuai dengan peristiwa yang mereka langgani.
  • Langganan hanya menerima peristiwa untuk resource yang dapat diakses pengguna melalui akun Google Workspace atau Akun Google miliknya.