Berlangganan acara Google Chat

Halaman ini menjelaskan peristiwa Google Chat yang dapat diikuti aplikasi Google Chat menggunakan Google Workspace Events API. Setelah menentukan jenis peristiwa yang diperlukan, 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 mengetahui peristiwa yang mungkin terlewatkan dari langganan karena gangguan layanan. Untuk mempelajari cara menerima dan merespons peristiwa Chat, lihat Menggunakan peristiwa dari Google Chat dalam dokumentasi Chat.

Resource target Chat yang didukung

Google Workspace Events API mendukung langganan ke:

  • Ruang, direpresentasikan sebagai fasilitas space
  • Pengguna, direpresentasikan sebagai resource user Cloud Identity API

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 terhadap pesan.
  • Anggota baru, yang diperbarui, atau dihapus di ruang.
  • Perubahan pada ruang yang Anda berlangganan, seperti nama atau deskripsi ruang yang diperbarui.

Jenis peristiwa untuk membuat langganan

Saat membuat langganan, Anda dapat menggunakan kolom eventTypes[] untuk menentukan jenis peristiwa yang ingin diterima. 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 tersebut 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, tentukan 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 ruang dan langganan bagi pengguna. Untuk mempelajari pengecualian terkait hal yang memicu 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 akan 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 telah diperbarui.

google.workspace.chat.space.v1.updated

space

Ruang akan dihapus.

google.workspace.chat.space.v1.deleted

space

Langganan ke 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 akan 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 (hanya output)

Selain menerima jenis peristiwa yang Anda ikuti, aplikasi Chat Anda mungkin juga menerima peristiwa batch. Peristiwa batch adalah peristiwa yang mewakili banyak peristiwa dari jenis yang sama yang terjadi dalam periode waktu singkat. Payload peristiwa batch berisi daftar semua resource yang diubah.

Misalnya, jika pengguna menambahkan 20 pengguna ke ruang sekaligus, 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 semua jenis peristiwa langganan, 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 langganan, atau pengguna yang berlangganan telah ditambahkan ke beberapa ruang.

google.workspace.chat.membership.v1.batchCreated

Beberapa keanggotaan akan diperbarui di ruang langganan, atau untuk pengguna yang berlangganan.

google.workspace.chat.membership.v1.batchUpdated

Beberapa anggota akan dihapus dari ruang langganan, atau pengguna yang berlangganan telah dihapus dari beberapa ruang.

google.workspace.chat.membership.v1.batchDeleted

Ruang memiliki beberapa update.

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 akan berisi payload untuk peristiwa tersebut. Payload ini memiliki informasi tentang resource Google Workspace yang berubah. Misalnya, jika Anda telah berlangganan ke peristiwa keanggotaan dalam ruang, payload untuk peristiwa tersebut berisi informasi tentang resource spaces.membership yang berubah.

Data resource dalam payload peristiwa

Saat membuat langganan, Anda dapat menentukan apakah payload menyertakan detail tentang resource, atau hanya nama resource. Misalnya, jika ingin menerima peristiwa tentang anggota di ruang Chat, Anda dapat menentukan kolom resource keanggotaan mana yang ingin diterima dalam payload peristiwa.

Tabel berikut menyediakan contoh payload JSON untuk langganan 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 dalam ruang yang bertuliskan "Halo dunia".

google.workspace.chat.message.v1.created

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.

google.workspace.chat.membership.v1.updated

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 pada 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 pada pesan dengan 😊 emoji dan beroperasi emoji. 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 peristiwa tentang anggota baru (google.workspace.chat.membership.v1.created), jika jenis ruang adalah pesan langsung atau pesan grup, peristiwa akan dipicu setelah pesan pertama diposting dalam ruang.
  • Untuk peristiwa tentang anggota baru, peristiwa hanya dipicu saat anggota ditambahkan setelah ruang dibuat. Pengguna yang membuat ruang tidak akan memicu peristiwa anggota baru.
  • Perubahan pada histori ruang tidak memicu peristiwa ruang yang diperbarui (Jenis peristiwa: google.workspace.chat.spaces.v1.updated).
  • Untuk menerima peristiwa keanggotaan, pengguna harus menjadi anggota langsung ruang tersebut. Jika pengguna ditambahkan, diperbarui, atau dihapus secara tidak langsung ke ruang melalui Google Grup, langganan tidak akan menerima peristiwa keanggotaan tersebut. Untuk memahami cara kerja keanggotaan Google Grup, lihat Menambahkan grup Google ke ruang.