Berlangganan acara Google Chat

Halaman ini menjelaskan peristiwa Google Chat yang dapat diikuti langganannya oleh aplikasi Google Chat menggunakan Google Workspace Events API. Setelah Anda memutuskan jenis peristiwa yang Anda perlukan, buat langganan untuk mulai menerima peristiwa dari Google Chat.

Selain berlangganan peristiwa, Anda juga dapat membuat kueri untuk peristiwa dengan memanggil Chat API. Dengan memanggil Chat API, Anda dapat mengambil peristiwa secara berkala, atau mengejar peristiwa yang mungkin terlewat dari langganan karena gangguan. Untuk mempelajari cara menerima dan menanggapi peristiwa Chat, lihat Bekerja dengan peristiwa dari Google Chat di dokumentasi Chat.

Peristiwa Chat yang didukung

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

  • Pesan baru, yang diperbarui, atau yang dihapus di ruang.
  • Reaksi baru atau dihapus pada pesan.
  • Anggota baru, yang diperbarui, atau yang dihapus di ruang.
  • Perubahan pada ruang yang Anda ikuti, 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 target resource berikut untuk Chat:

Resource target Format Batasan
Spasi

//chat.googleapis.com/spaces/SPACE

dengan SPACE adalah ID dalam nama resource resource space Chat API. Anda bisa mendapatkan ID dari URL ruang atau menggunakan metode spaces.list().

Pengguna Chat atau aplikasi Chat yang mengizinkan langganan harus menjadi anggota ruang melalui Akun Google atau Google Workspace miliknya. Mendukung:
Semua ruang untuk pengguna

//chat.googleapis.com/spaces/-

Langganan hanya menerima acara untuk ruang tempat pengguna menjadi anggota melalui Akun Google atau Google Workspace-nya. Hanya mendukung autentikasi pengguna.
Pengguna

//cloudidentity.googleapis.com/users/USER

dengan USER adalah ID dalam nama resource resource user Chat API. Untuk mengetahui detailnya, lihat Mengidentifikasi dan menentukan pengguna Google Chat.

Langganan hanya menerima peristiwa tentang pengguna yang mengizinkan langganan. Pengguna tidak dapat mengizinkan langganan atas nama pengguna lain. Hanya mendukung autentikasi pengguna.

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 pemicu peristiwa, lihat Batasan.

Jenis peristiwa Format Data resource
Langganan ke ruang  
Pesan diposting.

google.workspace.chat.message.v1.created

space.message

Pesan diperbarui.

google.workspace.chat.message.v1.updated

space.message

Pesan dihapus.

google.workspace.chat.message.v1.deleted

space.message

Reaksi dibuat.

google.workspace.chat.reaction.v1.created

space.message.reaction

Reaksi dihapus.

google.workspace.chat.reaction.v1.deleted

space.message.reaction

Anggota ditambahkan ke ruang.

google.workspace.chat.membership.v1.created

space.membership

Anggota diperbarui di ruang.

google.workspace.chat.membership.v1.updated

space.membership

Anggota dihapus dari ruang.

google.workspace.chat.membership.v1.deleted

space.membership

Ruang diperbarui.

google.workspace.chat.space.v1.updated

space

Ruang dihapus.

google.workspace.chat.space.v1.deleted

space

Langganan untuk pengguna  
Pengguna menjadi anggota ruang.

Tidak semua anggota baru memicu peristiwa. Untuk mengetahui detailnya, lihat Batasan

google.workspace.chat.membership.v1.created

space.membership

Keanggotaan pengguna ke ruang diperbarui.

google.workspace.chat.membership.v1.updated

space.membership

Pengguna dihapus sebagai anggota langsung ruang.

google.workspace.chat.membership.v1.deleted

space.membership

Jenis peristiwa batch (khusus output)

Selain menerima jenis peristiwa yang Anda ikuti, aplikasi Chat Anda juga dapat menerima peristiwa batch. Peristiwa batch adalah peristiwa yang merepresentasikan banyak peristiwa dengan jenis yang sama yang terjadi dalam jangka 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.

google.workspace.chat.message.v1.batchCreated

Beberapa pesan diperbarui.

google.workspace.chat.message.v1.batchUpdated

Beberapa pesan dihapus.

google.workspace.chat.message.v1.batchDeleted

Beberapa reaksi dibuat.

google.workspace.chat.reaction.v1.batchCreated

Beberapa reaksi dihapus.

google.workspace.chat.reaction.v1.batchDeleted

Beberapa anggota ditambahkan ke ruang yang diikuti, atau pengguna yang mengikuti telah ditambahkan ke beberapa ruang.

google.workspace.chat.membership.v1.batchCreated

Beberapa keanggotaan diperbarui di ruang yang diikuti, atau untuk pengguna yang mengikuti.

google.workspace.chat.membership.v1.batchUpdated

Beberapa anggota dihapus dari ruang yang diikuti, atau pengguna yang mengikuti telah dihapus dari beberapa ruang.

google.workspace.chat.membership.v1.batchDeleted

Ruang memiliki beberapa pembaruan.

google.workspace.chat.space.v1.batchUpdated

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 berisi payload untuk peristiwa tersebut. Payload ini berisi informasi tentang resource Google Workspace yang berubah. Misalnya, jika Anda telah berlangganan peristiwa keanggotaan di ruang, payload untuk peristiwa ini berisi informasi tentang spaces.membership resource 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 anggota di ruang Chat, Anda dapat menentukan kolom resource keanggotaan yang ingin Anda terima di 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 "Hello world".

google.workspace.chat.message.v1.created

Mencakup data resource:

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID",
        "sender":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "createTime": "2023-09-07T21:37:36.260127Z",
        "text": "Hello world",
        "thread":
        {
            "name": "spaces/SPACE_ID/threads/THREAD_ID"
        },
        "space":
        {
            "name": "spaces/SPACE_ID"
        },
        "argumentText": "Hello world"
    }
}
      

Mengecualikan data resource:

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID"
    }
}
      
Pengguna menjadi pengelola ruang.

google.workspace.chat.membership.v1.updated

Mencakup data resource:

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID",
        "state": "JOINED",
        "member":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "createTime": "1970-01-01T00:00:00Z",
        "role": "ROLE_MANAGER"
    }
}
      

Mengecualikan data resource:

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID"
    }
}
      
Pengguna memperbarui deskripsi ruang menjadi "Tim penjualan untuk Cymbal Labs". google.workspace.chat.space.v1.updated

Mencakup data resource:

{
    "space":
    {
        "name": "spaces/SPACE_ID",
        "displayName": "Cymbal Sales",
        "spaceThreadingState": "THREADED_MESSAGES",
        "spaceType": "SPACE",
        "spaceDetails":
        {
            "description": "Sales team for Cymbal Labs."
        },
        "spaceHistoryState": "HISTORY_ON"
    }
}
      

Mengecualikan data resource:

{
    "space":
    {
        "name": "spaces/SPACE_ID"
    }
}
      
Dua pengguna Chat ditambahkan ke ruang secara bersamaan. google.workspace.chat.membership.v1.batchCreated

Mencakup data resource:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID",
            "state": "JOINED",
            "member":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID",
            "state": "JOINED",
            "member":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        }
    ]
}
      

Mengecualikan data resource:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        }
    ]
}
      
Pengguna bereaksi terhadap pesan dengan emoji 😊. google.workspace.chat.reaction.v1.created

Mencakup data resource:

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        "user":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      

Mengecualikan data resource:

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
    }
}
      
Pengguna bereaksi terhadap pesan dengan emoji 😊 dan emoji 😸. google.workspace.chat.reaction.v1.batchCreated

Mencakup data resource:

{
    "reactions": [
        {
          "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
            "user":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😊"
            }
          }
        },
        {
          "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
            "user":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😸"
            }
          }
        }
    ]
}
      

Mengecualikan data resource:

{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
        },
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        }
      }
    ]
}
      

Batasan

  • Untuk langganan 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 peristiwa keanggotaan, pengguna atau aplikasi Chat harus menjadi anggota langsung ruang. Jika mereka ditambahkan, diperbarui, atau dihapus secara tidak langsung ke ruang melalui Grup Google, langganan tidak menerima peristiwa keanggotaan tersebut. Untuk memahami cara kerja keanggotaan Grup Google, lihat Menambahkan Grup Google ke ruang.