Halaman ini menjelaskan peristiwa Google Chat yang dapat dilanggani oleh aplikasi Google Chat menggunakan Google Workspace Events API. Setelah Anda memutuskan jenis peristiwa yang diperlukan, buat langganan untuk mulai menerima peristiwa dari Google Chat.
Selain berlangganan peristiwa, Anda juga dapat membuat kueri peristiwa dengan memanggil Chat API. Dengan memanggil Chat API, Anda dapat mengambil peristiwa secara berkala, atau mengikuti peristiwa yang mungkin terlewat dari langganan karena pemadaman layanan. Untuk mempelajari cara menerima dan merespons peristiwa Chat, lihat Menggunakan peristiwa dari Google Chat dalam dokumentasi Chat.
Peristiwa Chat yang didukung
Langganan Google Workspace memungkinkan Anda menerima peristiwa tentang jenis perubahan berikut di Chat:
- Pesan baru, yang diperbarui, atau dihapus di ruang.
- Reaksi baru atau yang dihapus pada pesan.
- Anggota baru, yang diperbarui, atau dihapus di ruang.
- Perubahan pada ruang yang Anda subscribe, seperti nama atau deskripsi ruang yang diperbarui.
Resource yang dapat Anda pantau untuk peristiwa
Untuk menerima peristiwa, Anda menentukan resource Chat yang akan dipantau, yang disebut resource target langganan.
Google Workspace Events API mendukung resource target berikut untuk Chat:
Resource target | Format | Batasan |
---|---|---|
Spasi |
dengan SPACE adalah ID dalam
nama resource resource |
Pengguna Chat yang memberikan otorisasi langganan harus menjadi anggota ruang melalui Akun Google atau Google Workspace mereka. |
Semua ruang untuk pengguna |
|
Langganan hanya menerima peristiwa untuk ruang tempat pengguna menjadi anggota melalui Google Workspace atau Akun Google mereka. |
Pengguna |
dengan USER adalah ID dalam
nama resource resource |
Langganan hanya menerima peristiwa tentang pengguna yang memberikan otorisasi langganan. Pengguna tidak dapat memberikan otorisasi langganan atas nama pengguna lain. |
Jenis peristiwa untuk membuat langganan
Saat membuat langganan, 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 pengguna yang bergabung ke ruang Chat, Anda menentukan ruang sebagai resource target, dan jenis peristiwa sebagai google.workspace.chat.membership.v1.created
. Untuk menerima peristiwa tentang pengguna tertentu
yang bergabung ke ruang mana pun, Anda menentukan pengguna sebagai resource target, dan
jenis peristiwa sebagai google.workspace.chat.membership.v1.created
. Untuk mempelajari lebih lanjut cara kerja peristiwa, lihat Struktur peristiwa Google Workspace.
Tabel berikut menampilkan jenis peristiwa yang didukung untuk langganan ke ruang dan langganan ke pengguna. Untuk mempelajari pengecualian tentang hal yang memicu peristiwa, lihat Batasan.
Jenis peristiwa | Format | Data resource | ||
---|---|---|---|---|
Langganan ke ruang | ||||
Pesan diposting. |
|
|
||
Pesan diperbarui. |
|
|
||
Pesan dihapus. |
|
|
||
Reaksi dibuat. |
|
|
||
Reaksi dihapus. |
|
|
||
Anggota ditambahkan ke ruang. |
|
|
||
Anggota diperbarui di ruang. |
|
|
||
Anggota dihapus dari ruang. |
|
|
||
Ruang diperbarui. |
|
|
||
Ruang akan dihapus. |
|
|
||
Langganan untuk pengguna | ||||
Pengguna menjadi anggota ruang.
Tidak semua anggota baru memicu peristiwa. Untuk mengetahui detailnya, lihat Batasan |
|
|
||
Langganan pengguna ke ruang diperbarui. |
|
|
||
Pengguna dihapus sebagai anggota langsung ruang. |
|
|
Jenis peristiwa batch (khusus output)
Selain menerima jenis peristiwa yang Anda langgani, aplikasi Chat Anda juga dapat menerima peristiwa batch. Peristiwa batch adalah peristiwa yang mewakili banyak peristiwa dengan jenis yang sama yang terjadi dalam waktu singkat. Payload peristiwa batch berisi daftar semua resource yang diubah.
Misalnya, jika pengguna menambahkan 20 pengguna ke ruang secara bersamaan, aplikasi Chat Anda mungkin menerima peristiwa batch (google.workspace.chat.membership.v1.batchCreated
). Payload peristiwa berisi daftar semua resource Membership
baru yang dibuat saat pengguna menambahkan anggota ke ruang.
Anda menerima peristiwa batch untuk jenis peristiwa apa pun yang Anda ikuti, sehingga
Anda tidak perlu menentukan peristiwa batch saat membuat langganan. Misalnya, jika Anda berlangganan reaksi baru
(google.workspace.chat.reaction.v1.created
), aplikasi Chat
Anda akan otomatis dikonfigurasi untuk menerima peristiwa reaksi
batch (google.workspace.chat.reaction.v1.batchCreated
).
Tabel berikut menampilkan kemungkinan peristiwa batch untuk langganan:
Jenis peristiwa batch | Format |
---|---|
Beberapa pesan diposting. |
|
Beberapa pesan diperbarui. |
|
Beberapa pesan dihapus. |
|
Beberapa reaksi dibuat. |
|
Beberapa reaksi dihapus. |
|
Beberapa anggota ditambahkan ke ruang yang dibeli langganannya, atau pengguna yang membeli langganan telah ditambahkan ke beberapa ruang. |
|
Beberapa langganan diperbarui di ruang yang berlangganan, atau untuk pengguna yang berlangganan. |
|
Beberapa anggota dihapus dari ruang yang berlangganan, atau pengguna yang berlangganan telah dihapus dari beberapa ruang. |
|
Ruang memiliki beberapa pembaruan. |
|
Data peristiwa
Bagian ini menjelaskan data peristiwa dan contoh payload untuk peristiwa di Chat.
Saat langganan Google Workspace Anda menerima peristiwa dari Chat, kolom data
akan berisi payload untuk peristiwa tersebut. Payload ini memiliki informasi tentang
resource Google Workspace yang berubah. Misalnya, jika Anda telah berlangganan peristiwa keanggotaan di ruang, payload untuk peristiwa ini berisi informasi tentang resource spaces.membership
yang berubah.
Data resource dalam payload peristiwa
Saat membuat langganan, Anda dapat menentukan apakah payload akan menyertakan detail tentang resource, atau hanya nama resource. Misalnya, jika ingin menerima peristiwa tentang anggota di ruang Chat, Anda dapat menentukan kolom resource keanggotaan yang ingin diterima dalam payload peristiwa.
Tabel berikut memberikan contoh payload JSON untuk langganan ke ruang Chat spaces/AAAABBBBBB
. Untuk setiap peristiwa yang
diterima langganan, payload akan muncul di kolom data
peristiwa:
Contoh | Jenis peristiwa | Payload JSON |
---|---|---|
Pengguna memposting pesan di ruang yang bertuliskan "Halo dunia". |
|
Menyertakan data resource
{ "message": { "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD", "sender": { "name": "users/1234567890987654321", "type": "HUMAN" }, "createTime": "2023-09-07T21:37:36.260127Z", "text": "Hello world", "thread": { "name": "spaces/AAAABBBBBB/threads/EEEEEEEEEEEE" }, "space": { "name": "spaces/AAAABBBBBB" }, "argumentText": "Hello world" } } Mengecualikan data resource
{ "message": { "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD" } } |
Pengguna menjadi pengelola ruang. |
|
Menyertakan data resource
{ "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321", "state": "JOINED", "member": { "name": "users/1234567890987654321", "type": "HUMAN" }, "createTime": "1970-01-01T00:00:00Z", "role": "ROLE_MANAGER" } } Mengecualikan data resource
{ "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } } |
Pengguna memperbarui deskripsi ruang menjadi "Tim penjualan untuk Cymbal Labs". | google.workspace.chat.space.v1.updated |
Menyertakan data resource
{ "space": { "name": "spaces/AAAABBBBBB", "displayName": "Cymbal Sales", "spaceThreadingState": "THREADED_MESSAGES", "spaceType": "SPACE", "spaceDetails": { "description": "Sales team for Cymbal Labs." }, "spaceHistoryState": "HISTORY_ON" } } Mengecualikan data resource
{ "space": { "name": "spaces/AAAABBBBBB" } } |
Dua pengguna Chat ditambahkan ke ruang secara bersamaan. | google.workspace.chat.membership.v1.batchCreated |
Menyertakan data resource
{ "memberships": [ { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321", "state": "JOINED", "member": { "name": "users/1234567890987654321", "type": "HUMAN" }, "createTime": "1970-01-01T00:00:00Z", "role": "ROLE_MEMBER" } }, { "membership": { "name": "spaces/AAAABBBBBB/members/987654321234567890", "state": "JOINED", "member": { "name": "users/987654321234567890", "type": "HUMAN" }, "createTime": "1970-01-01T00:00:00Z", "role": "ROLE_MEMBER" } } ] } Mengecualikan data resource
{ "memberships": [ { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } }, { "membership": { "name": "spaces/AAAABBBBBB/members/98765432123456789019" } } ] } |
Pengguna bereaksi terhadap pesan dengan emoji 😊. | google.workspace.chat.reaction.v1.created |
Menyertakan data resource
{ "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222", "user": { "name": "users/1234567890987654321", "type": "HUMAN" }, "emoji": { "unicode": "😊" } } } Menghapus data resource
{ "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222" } } |
Pengguna bereaksi terhadap pesan dengan emoji 😊 dan 😸. | google.workspace.chat.reaction.v1.batchCreated |
Menyertakan data resource
{ "reactions": [ { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222", "user": { "name": "users/1234567890987654321", "type": "HUMAN" }, "emoji": { "unicode": "😊" } } }, { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444", "user": { "name": "users/98765431234564321", "type": "HUMAN" }, "emoji": { "unicode": "😸" } } } ] } Menghapus data resource
{ "reactions": [ { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222" }, "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444", } } ] } |
Batasan
-
Untuk langganan kepada pengguna, peristiwa tentang anggota baru dalam pesan langsung atau chat grup tanpa nama (
google.workspace.chat.membership.v1.created
), hanya dipicu setelah pesan pertama diposting. - Untuk menerima acara langganan, pengguna harus menjadi anggota langsung ruang. Jika pengguna ditambahkan, diperbarui, atau dihapus secara tidak langsung ke ruang melalui Grup Google, langganan tidak akan menerima peristiwa keanggotaan tersebut. Untuk memahami cara kerja keanggotaan Grup Google, lihat Menambahkan Grup Google ke ruang.
Topik terkait
- Struktur peristiwa Google Workspace
- Memilih cakupan OAuth
- Membuat langganan untuk menerima peristiwa Chat