Đăng ký nhận thông báo về sự kiện trong Google Chat

Trang này mô tả các sự kiện trong Chat mà một ứng dụng Chat có thể đăng ký bằng API Sự kiện của Google Workspace. Sau khi quyết định loại sự kiện bạn cần, hãy tạo một gói thuê bao để bắt đầu nhận sự kiện từ Chat.

Ngoài việc đăng ký nhận sự kiện, bạn cũng có thể truy vấn sự kiện bằng cách gọi API Google Chat. Khi gọi Chat API, bạn có thể truy xuất các sự kiện theo định kỳ hoặc cập nhật các sự kiện mà bạn có thể đã bỏ lỡ trong một gói thuê bao do sự cố ngừng hoạt động. Để tìm hiểu về các cách bạn có thể nhận và phản hồi các sự kiện trong Chat, hãy xem phần Xử lý các sự kiện trong Chat trong tài liệu về Chat.

Sự kiện được hỗ trợ trong Chat

Gói thuê bao Google Workspace cho phép bạn nhận sự kiện về các loại thay đổi sau trong Chat:

  • Tin nhắn mới, được cập nhật hoặc bị xoá trong không gian.
  • Phản ứng mới hoặc đã bị xoá đối với một tin nhắn.
  • Thành viên mới, được cập nhật hoặc bị xoá trong không gian.
  • Những thay đổi đối với không gian mà bạn đã đăng ký, chẳng hạn như tên hoặc nội dung mô tả mới của không gian.
  • Thay đổi đối với tình trạng rảnh/bận của người dùng.
  • Thay đổi đối với spaceReadState hoặc threadReadState của người dùng.

Tài nguyên mà bạn có thể theo dõi để biết các sự kiện

Để nhận sự kiện, bạn cần chỉ định một tài nguyên Chat cần theo dõi, gọi là tài nguyên mục tiêu của gói thuê bao.

API Google Workspace Events hỗ trợ các tài nguyên mục tiêu sau đây cho Chat:

Tài nguyên mục tiêu Định dạng Giới hạn
Không gian

//chat.googleapis.com/spaces/SPACE

trong đó SPACE là mã nhận dạng trong tên tài nguyên của tài nguyên space của API Chat. Bạn có thể lấy mã nhận dạng từ URL của không gian hoặc bằng cách sử dụng phương thức spaces.list().

Người dùng Chat hoặc ứng dụng Chat uỷ quyền cho gói thuê bao phải là thành viên của không gian thông qua Tài khoản Google hoặc tài khoản Google Workspace của họ. Hỗ trợ:
Tất cả không gian của một người dùng

//chat.googleapis.com/spaces/-

Gói thuê bao chỉ nhận được sự kiện cho những không gian mà người dùng là thành viên thông qua Google Workspace hoặc Tài khoản Google của họ. Chỉ hỗ trợ phương thức xác thực người dùng.
Người dùng

//cloudidentity.googleapis.com/users/USER

trong đó USER là mã nhận dạng trong tên tài nguyên của tài nguyên user của API Chat. Để biết thông tin chi tiết, hãy xem bài viết Xác định và chỉ định người dùng Google Chat.

Gói thuê bao chỉ nhận được các sự kiện về người dùng đã uỷ quyền cho gói thuê bao đó. Người dùng không thể uỷ quyền cho một gói thuê bao thay mặt cho người dùng khác. Chỉ hỗ trợ phương thức xác thực người dùng.

Khách hàng

//admin.googleapis.com/customers/CUSTOMER

trong đó CUSTOMER là mã khách hàng. Bạn cũng có thể sử dụng bí danh my_customer cho miền tùy chỉnh của ứng dụng Chat.

Gói thuê bao nhận được sự kiện cho tất cả không gian và người dùng do miền của khách hàng quản lý. Chỉ hỗ trợ phương thức xác thực ứng dụng có sự phê duyệt của quản trị viên.

Loại sự kiện để tạo gói thuê bao

Khi bạn tạo một gói thuê bao, hãy sử dụng trường eventTypes[] để chỉ định loại sự kiện bạn muốn nhận. Các loại sự kiện được định dạng theo quy cách của CloudEvents, chẳng hạn như google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Ví dụ: để nhận sự kiện về việc người dùng tham gia một không gian trò chuyện, hãy chỉ định không gian đó làm tài nguyên mục tiêu và loại sự kiện là google.workspace.chat.membership.v1.created. Để nhận sự kiện về một người dùng nhất định tham gia không gian bất kỳ, hãy chỉ định người dùng đó làm tài nguyên mục tiêu và loại sự kiện là google.workspace.chat.membership.v1.created. Để tìm hiểu thêm về cách hoạt động của sự kiện, hãy xem bài viết Cấu trúc của sự kiện trên Google Workspace.

Bảng sau đây cho biết những loại sự kiện được hỗ trợ cho gói thuê bao đối với không gian và gói thuê bao đối với người dùng. Để tìm hiểu về các trường hợp ngoại lệ liên quan đến điều kiện kích hoạt sự kiện, hãy xem phần Giới hạn.

Loại sự kiện Định dạng Dữ liệu tài nguyên
Đăng ký không gian  
Tin nhắn được đăng.

google.workspace.chat.message.v1.created

space.message

Một tin nhắn được cập nhật.

google.workspace.chat.message.v1.updated

space.message

Một tin nhắn đã bị xoá.

google.workspace.chat.message.v1.deleted

space.message

Đã tạo một phản ứng.

google.workspace.chat.reaction.v1.created

space.message.reaction

Một lượt thể hiện cảm xúc đã bị xoá.

google.workspace.chat.reaction.v1.deleted

space.message.reaction

Một thành viên được thêm vào không gian.

google.workspace.chat.membership.v1.created

space.membership

Một thành viên được cập nhật trong không gian.

google.workspace.chat.membership.v1.updated

space.membership

Một thành viên bị xoá khỏi không gian.

google.workspace.chat.membership.v1.deleted

space.membership

Không gian đã được cập nhật.

google.workspace.chat.space.v1.updated

space

Không gian đã bị xoá.

google.workspace.chat.space.v1.deleted

space

Gói thuê bao cho người dùng  
Người dùng trở thành thành viên của một không gian.

Không phải Thành viên mới nào cũng kích hoạt sự kiện. Để biết thông tin chi tiết, hãy xem phần Các điểm hạn chế

google.workspace.chat.membership.v1.created

space.membership

Tư cách thành viên của người dùng trong một không gian đã được cập nhật.

google.workspace.chat.membership.v1.updated

space.membership

Người dùng bị xoá với tư cách là thành viên trực tiếp của một không gian.

google.workspace.chat.membership.v1.deleted

space.membership

Trạng thái đọc không gian của người dùng được cập nhật.

google.workspace.chat.spaceReadState.v1.updated

spaceReadState

Trạng thái đọc chuỗi tin nhắn của người dùng sẽ được cập nhật.

google.workspace.chat.threadReadState.v1.updated

threadReadState

Gói thuê bao cho khách hàng  
Một sự kiện xảy ra đối với bất kỳ không gian, tin nhắn, lượt thể hiện cảm xúc, tư cách thành viên hoặc trạng thái đã đọc nào của người dùng trong tổ chức của bạn trên Google Workspace.

Hỗ trợ tất cả các loại sự kiện được liệt kê cho gói thuê bao không gian và người dùng.

Tuỳ thuộc vào loại sự kiện (ví dụ: space, space.message, space.membership hoặc spaceReadState).

Loại sự kiện theo lô (chỉ có đầu ra)

Ngoài việc nhận các loại sự kiện mà bạn đăng ký, ứng dụng Chat cũng có thể nhận được các sự kiện theo lô. Sự kiện theo lô là một sự kiện đại diện cho nhiều sự kiện cùng loại xảy ra trong một khoảng thời gian ngắn. Trọng tải của một sự kiện theo lô chứa danh sách tất cả tài nguyên đã thay đổi.

Ví dụ: nếu một người dùng thêm 20 người dùng vào một không gian cùng một lúc, thì ứng dụng Chat của bạn có thể nhận được một sự kiện theo lô (google.workspace.chat.membership.v1.batchCreated). Trọng tải sự kiện chứa danh sách tất cả tài nguyên Membership mới được tạo khi người dùng thêm thành viên vào không gian.

Bạn sẽ nhận được sự kiện theo lô cho bất kỳ loại sự kiện nào mà bạn đăng ký, vì vậy, bạn không cần chỉ định sự kiện theo lô khi tạo gói thuê bao. Ví dụ: nếu bạn đăng ký nhận các phản ứng mới (google.workspace.chat.reaction.v1.created), thì ứng dụng Chat của bạn sẽ tự động được định cấu hình để nhận các sự kiện phản ứng theo lô (google.workspace.chat.reaction.v1.batchCreated).

Bảng sau đây cho thấy các sự kiện theo lô có thể xảy ra đối với một gói thuê bao:

Loại sự kiện theo lô Định dạng
Nhiều tin nhắn được đăng.

google.workspace.chat.message.v1.batchCreated

Nhiều thông báo đã được cập nhật.

google.workspace.chat.message.v1.batchUpdated

Nhiều tin nhắn đã bị xoá.

google.workspace.chat.message.v1.batchDeleted

Nhiều phản ứng được tạo.

google.workspace.chat.reaction.v1.batchCreated

Đã xoá nhiều lượt thể hiện cảm xúc.

google.workspace.chat.reaction.v1.batchDeleted

Nhiều thành viên được thêm vào không gian đã đăng ký hoặc người dùng đã đăng ký được thêm vào nhiều không gian.

google.workspace.chat.membership.v1.batchCreated

Nhiều gói thành viên được cập nhật trong không gian đã đăng ký hoặc cho người dùng đã đăng ký.

google.workspace.chat.membership.v1.batchUpdated

Nhiều thành viên bị xoá khỏi không gian đã đăng ký hoặc người dùng đã đăng ký bị xoá khỏi nhiều không gian.

google.workspace.chat.membership.v1.batchDeleted

Không gian này có nhiều thông tin cập nhật.

google.workspace.chat.space.v1.batchUpdated

Nhiều trạng thái đọc của không gian được cập nhật cho người dùng đã đăng ký.

google.workspace.chat.spaceReadState.v1.batchUpdated

Nhiều trạng thái đọc của chuỗi tin nhắn được cập nhật cho người dùng đã đăng ký.

google.workspace.chat.threadReadState.v1.batchUpdated

Dữ liệu sự kiện

Phần này mô tả dữ liệu sự kiện và tải trọng mẫu cho các sự kiện trong Chat.

Khi gói thuê bao Google Workspace của bạn nhận được một sự kiện từ Chat, trường data sẽ chứa tải trọng cho sự kiện đó. Trọng tải này có thông tin về tài nguyên Google Workspace đã thay đổi. Ví dụ: nếu bạn đã đăng ký nhận sự kiện về thành viên trong một không gian, thì tải trọng cho các sự kiện này sẽ chứa thông tin về tài nguyên spaces.membership đã thay đổi.

Dữ liệu tài nguyên trong tải trọng sự kiện

Khi tạo gói thuê bao, bạn có thể chỉ định xem bạn muốn tải trọng bao gồm thông tin chi tiết về tài nguyên hay chỉ tên của tài nguyên. Ví dụ: nếu bạn muốn nhận sự kiện về thành viên trong một không gian Chat, hãy chỉ định những trường của tài nguyên thành viên mà bạn muốn nhận trong tải trọng sự kiện.

Bảng sau đây cung cấp ví dụ về tải trọng JSON cho gói thuê bao không gian Chat spaces/AAAABBBBBB. Đối với mỗi sự kiện mà gói thuê bao nhận được, tải trọng sẽ xuất hiện trong trường data của sự kiện:

Ví dụ Loại sự kiện Phần dữ liệu thực tế JSON

Người dùng đăng một tin nhắn trong không gian có nội dung "Xin chào thế giới".

google.workspace.chat.message.v1.created

Bao gồm dữ liệu tài nguyên:

{
    "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"
    }
}
      

Không bao gồm dữ liệu tài nguyên:

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID"
    }
}
      
Một người dùng trở thành người quản lý không gian.

google.workspace.chat.membership.v1.updated

Bao gồm dữ liệu tài nguyên:

{
    "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"
    }
}
      

Không bao gồm dữ liệu tài nguyên:

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID"
    }
}
      
Một người dùng cập nhật nội dung mô tả của không gian thành "Nhóm bán hàng của Cymbal Labs". google.workspace.chat.space.v1.updated

Bao gồm dữ liệu tài nguyên:

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

Không bao gồm dữ liệu tài nguyên:

{
    "space":
    {
        "name": "spaces/SPACE_ID"
    }
}
      
Hai người dùng Chat được thêm vào không gian cùng một lúc. google.workspace.chat.membership.v1.batchCreated

Bao gồm dữ liệu tài nguyên:

{
    "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"
          }
        }
    ]
}
      

Không bao gồm dữ liệu tài nguyên:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        }
    ]
}
      
Người dùng phản ứng với một tin nhắn bằng biểu tượng cảm xúc 😊. google.workspace.chat.reaction.v1.created

Bao gồm dữ liệu tài nguyên:

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

Không bao gồm dữ liệu tài nguyên:

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
    }
}
      
Người dùng thể hiện cảm xúc với một tin nhắn bằng biểu tượng 😊 và 😸. google.workspace.chat.reaction.v1.batchCreated

Bao gồm dữ liệu tài nguyên:

{
    "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": "😸"
            }
          }
        }
    ]
}
      

Không bao gồm dữ liệu tài nguyên:

{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
        },
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        }
      }
    ]
}
      
Người dùng truy cập vào một không gian chưa đọc, từ đó cập nhật trạng thái đọc của không gian đó. google.workspace.chat.spaceReadState.v1.updated

Bao gồm dữ liệu tài nguyên:

{
  "spaceReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/spaceReadState",
    "lastReadTime": "2026-04-14T14:03:46.431760Z"
  }
}
      

Không bao gồm dữ liệu tài nguyên:

{
  "spaceReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/spaceReadState"
  }
}
      
Người dùng đọc một tin nhắn trong chuỗi tin nhắn, từ đó cập nhật trạng thái đọc chuỗi tin nhắn của họ. google.workspace.chat.threadReadState.v1.updated

Bao gồm dữ liệu tài nguyên:

{
  "threadReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/threads/THREAD_ID/threadReadState",
    "lastReadTime": "2026-04-14T14:03:46.431760Z"
  }
}
      

Không bao gồm dữ liệu tài nguyên:

{
  "threadReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/threads/THREAD_ID/threadReadState"
  }
}
      
Người dùng chuyển sang trạng thái rảnh trong Chat. google.workspace.chat.availability.v1.updated

Bao gồm dữ liệu tài nguyên:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "ACTIVE"
    }
}
      

Không bao gồm dữ liệu tài nguyên:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Người dùng không hoạt động trong Chat. google.workspace.chat.availability.v1.updated

Bao gồm dữ liệu tài nguyên:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "IDLE",
    }
}
      

Không bao gồm dữ liệu tài nguyên:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Người dùng đặt trạng thái có mặt/vắng mặt thành Away trong Chat. google.workspace.chat.availability.v1.updated

Bao gồm dữ liệu tài nguyên:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "AWAY",
    }
}
      

Không bao gồm dữ liệu tài nguyên:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Người dùng đặt trạng thái có mặt/vắng mặt thành Do not disturb trong Chat. google.workspace.chat.availability.v1.updated

Bao gồm dữ liệu tài nguyên:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "DO_NOT_DISTURB",
        "doNotDisturbMetadata": {
          "expirationTime": "2026-03-24T18:36:31.337Z"
        }
    }
}
      

Không bao gồm dữ liệu tài nguyên:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Người dùng đặt trạng thái tuỳ chỉnh trên Chat. google.workspace.chat.availability.v1.updated

Bao gồm dữ liệu tài nguyên:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "ACTIVE",
        "customStatus": {
          "text": "Be right back",
          "emoji": {
            "unicode": "👟"
          },
          "expireTime": "2026-03-24T18:38:05.583655Z"
        }
    }
}
      

Không bao gồm dữ liệu tài nguyên:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      

Giới hạn và hành vi phân phối

Các hạn chế chung

  • Để nhận sự kiện về thành viên, người dùng hoặc ứng dụng Chat phải là thành viên trực tiếp của không gian. Nếu họ được thêm, cập nhật hoặc xoá gián tiếp khỏi một không gian thông qua một nhóm trên Google Groups, thì gói thuê bao sẽ không nhận được các sự kiện về thành viên đó. Để tìm hiểu cách hoạt động của tư cách thành viên trong nhóm trên Google Groups, hãy xem bài viết Thêm một nhóm trên Google Groups vào một không gian.

Gói thuê bao của người dùng

  • Đối với gói thuê bao cho người dùng, các sự kiện về thành viên mới trong tin nhắn trực tiếp hoặc cuộc trò chuyện nhóm chưa đặt tên (google.workspace.chat.membership.v1.created) chỉ kích hoạt sau khi tin nhắn đầu tiên được đăng.

Gói thuê bao của khách hàng

Đối với gói thuê bao của khách hàng, các giới hạn sau đây sẽ được áp dụng:

  • Tổ chức Google Workspace phải có ít nhất một giấy phép SKU Enterprise.
  • Một ứng dụng Chat chỉ có thể tạo một gói thuê bao khách hàng cho một tổ chức Google Workspace nhất định. Một tổ chức Google Workspace có thể có tổng cộng tối đa 5 gói thuê bao của khách hàng (do các ứng dụng Chat khác nhau tạo).

Đối với gói thuê bao của khách hàng, việc phân phối sự kiện tuân theo các quy tắc chung sau:

  • Sự kiện trong không gian: Chỉ được gửi nếu sự kiện xảy ra trong một không gian do tổ chức Google Workspace của bạn quản lý.
  • Sự kiện của người dùng: Chỉ được gửi nếu sự kiện xảy ra với một người dùng thuộc tổ chức Google Workspace của bạn.

Trường hợp ngoại lệ duy nhất đối với các quy tắc này là sự kiện dành cho hội viên. Gói thuê bao của bạn có thể nhận sự kiện về thành viên từ cả không gian do tổ chức của bạn quản lý và không gian do tổ chức bên ngoài quản lý, nhưng cách phân phối sự kiện phụ thuộc vào tổ chức quản lý không gian:

Không gian do tổ chức Google Workspace của bạn quản lý

Nếu có sự thay đổi về thành viên trong một không gian do tổ chức Google Workspace quản lý, thì sự thay đổi đó sẽ được phân phối dưới dạng sự kiện trong không gian.

Tên tài nguyên của một sự kiện trong không gian sử dụng định dạng sau:

spaces/{spaceId}/spaceEvents/{spaceEventId}

Không gian do các tổ chức bên ngoài quản lý

Nếu tư cách thành viên của một người dùng do tổ chức Google Workspace của bạn quản lý thay đổi trong một không gian do một tổ chức bên ngoài quản lý (ví dụ: một không gian có tên bên ngoài hoặc một tin nhắn trực tiếp do một người dùng bên ngoài tạo), thì gói thuê bao của bạn sẽ nhận được sự kiện này dưới dạng sự kiện của người dùng.

Tên tài nguyên của sự kiện người dùng sử dụng định dạng sau:

users/{userId}/userEvents/{userEventId}