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:

  • 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.
  • Proposal akses dibuat atau diselesaikan pada file.

Resource yang dapat Anda pantau untuk peristiwa

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

Google Workspace Events API mendukung target resource berikut untuk Drive:

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

dengan FILE adalah ID di nama resource 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 //googleapis.com/drive/v3/drives/DRIVE

dengan DRIVE adalah ID di nama resource 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-nya.

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 acara, lihat Struktur acara Google Workspace.

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

Jenis peristiwa Format Data resource
Langganan ke file  
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.

google.workspace.drive.file.v3.trashed

file

File dihapus dari sampah.

google.workspace.drive.file.v3.untrashed

file

Proposal akses dibuat pada file.

google.workspace.drive.accessproposal.v3.created

accessproposal

Proposal akses diselesaikan pada file.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Langganan ke drive bersama  
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.

google.workspace.drive.file.v3.trashed

file

File dihapus dari sampah.

google.workspace.drive.file.v3.untrashed

file

Proposal akses dibuat pada file.

google.workspace.drive.accessproposal.v3.created

accessproposal

Proposal akses diselesaikan pada file.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

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 berisi informasi tentang resource Google Workspace yang berubah. Misalnya, jika Anda telah berlangganan peristiwa file, payload untuk peristiwa ini berisi informasi tentang resource file 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 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 menambahkan file ke folder atau drive bersama.

google.workspace.drive.file.v3.created

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

Pengguna memindahkan file ke folder atau drive bersama.

google.workspace.drive.file.v3.moved

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

Pengguna mengedit file atau revisi baru diupload.

google.workspace.drive.file.v3.contentChanged

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

Pengguna menghapus file.

google.workspace.drive.file.v3.deleted

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

Pengguna memindahkan file ke sampah.

google.workspace.drive.file.v3.trashed

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

Pengguna memulihkan file dari sampah.

google.workspace.drive.file.v3.untrashed

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

Pengguna membuat proposal akses pada file.

google.workspace.drive.accessproposal.v3.created

Mencakup data resource
{
  "accessProposalCreatedEvent": {
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "63",
        "requesterEmailAddress": "application/vnd.google-apps.document",
        "requestMessage": "grant me access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
  }
}
      
Mengecualikan data resource
{
  "accessProposalCreatedEvent": {
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
  }
}
      

Pengguna menyetujui proposal akses pada file.

google.workspace.drive.accessProposal.v3.resolved

Mencakup data resource
{
  "accessProposalResolvedEvent": {
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "63",
        "requesterEmailAddress": "application/vnd.google-apps.document",
        "requestMessage": "resolve access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
  }
}
      
Mengecualikan data resource
{
  "accessProposalResolvedEvent": {
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
  }
}
      

Batasan

  • Jika kolom boolean includeDescendants di DriveOptions adalah true, langganan Drive di drive bersama dan folder 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 kasus 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 aksesnya dimiliki pengguna melalui akun Google Workspace atau Akun Google miliknya.