Đă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 Google Chat mà ứng dụng Google Chat có thể đăng ký bằng API Sự kiện của Google Workspace. Sau khi bạn quyết định loại sự kiện cần thiết, hãy tạo một gói thuê bao để bắt đầu nhận sự kiện từ Google Chat.

Ngoài việc đăng ký sự kiện, bạn cũng có thể truy vấn sự kiện bằng cách gọi Chat API. Việc gọi Chat API cho phép bạn truy xuất các sự kiện theo định kỳ hoặc xem lại 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 từ Google Chat trong tài liệu về Chat.

Các sự kiện Chat được hỗ trợ

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

  • Tin nhắn mới, đã cập nhật hoặc đã xoá trong không gian.
  • Phản ứng mới hoặc đã xoá đối với một tin nhắn.
  • Thành viên mới, đã cập nhật hoặc đã xoá trong không gian.
  • Những thay đổi đối với không gian mà bạn đăng ký theo dõi, chẳng hạn như tên hoặc nội dung mô tả không gian đã được cập nhật.

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

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

Google Workspace Events API 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 Chat API. Bạn có thể lấy mã nhận dạng từ URL của không gian hoặc sử dụng phương thức spaces.list().

Người dùng Chat uỷ quyền 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 Google Workspace của họ.
Tất cả không gian của một người dùng

//chat.googleapis.com/spaces/-

Lượt đăng ký này chỉ nhận được các sự kiện cho những không gian mà người dùng là thành viên thông qua Tài khoản Google hoặc Google Workspace của họ.
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 Chat API. Để biết thông tin chi tiết, hãy xem phần Xác định và chỉ định người dùng Google Chat.

Lệnh đăng ký chỉ nhận được các sự kiện về người dùng đã uỷ quyền cho lệnh đăng ký. Một người dùng không thể uỷ quyền gói thuê bao thay mặt cho người dùng khác.

Các loại sự kiện để tạo gói thuê bao

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

Ví dụ: để nhận các sự kiện về người dùng tham gia một không gian Chat, bạn 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 các sự kiện về một người dùng cụ thể tham gia bất kỳ không gian nào, bạn 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 phần Cấu trúc của sự kiện trong Google Workspace.

Bảng sau đây cho biết những loại sự kiện được hỗ trợ cho gói thuê bao của không gian và gói thuê bao của người dùng. Để tìm hiểu về các trường hợp ngoại lệ về điều gì kích hoạt mộ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
Gói thuê bao không gian  
Đã đăng một thông báo.

google.workspace.chat.message.v1.created

space.message

Thông báo được cập nhật.

google.workspace.chat.message.v1.updated

space.message

Tin nhắn đã bị xoá.

google.workspace.chat.message.v1.deleted

space.message

Một lượt phản ứng được tạo.

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 Hạn chế

google.workspace.chat.membership.v1.created

space.membership

Cập nhật trạng thái thành viên của người dùng trong một không gian.

google.workspace.chat.membership.v1.updated

space.membership

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

google.workspace.chat.membership.v1.deleted

space.membership

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 hàng loạt. 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 hàng loạt 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 hàng loạt (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 các thành viên vào không gian.

Bạn sẽ nhận được sự kiện theo lô cho mọi loại sự kiện 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ý các lượt thể hiện cảm xúc mới (google.workspace.chat.reaction.v1.created), ứng dụng Chat sẽ tự động được định cấu hình để nhận các sự kiện thể hiện cảm xúc hàng loạt (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 thông báo đượ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 thư sẽ bị xoá.

google.workspace.chat.message.v1.batchDeleted

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

google.workspace.chat.reaction.v1.batchCreated

Nhiều lượt bày tỏ cảm xúc bị xoá.

google.workspace.chat.reaction.v1.batchDeleted

Nhiều thành viên được thêm vào không gian mà người dùng đã đăng ký theo dõi hoặc người dùng đã đăng ký theo dõi đượ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 mà người dùng đã đă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 mà người dùng đã đă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 có nhiều nội dung cập nhật.

google.workspace.chat.space.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 đó. Gói dữ liệu này có thông tin về tài nguyên Google Workspace đã thay đổi. Ví dụ: nếu bạn đã đăng ký các sự kiện 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 muốn nhận sự kiện về thành viên trong một không gian Chat, bạn có thể 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 của 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 Gói dữ liệu JSON

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

google.workspace.chat.message.v1.created

Bao gồm dữ liệu tài nguyên
{
    "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"
    }
}
      
Không bao gồm dữ liệu tài nguyên
{
    "message":
    {
        "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD"
    }
}
      
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/AAAABBBBBB/members/1234567890987654321",
        "state": "JOINED",
        "member":
        {
            "name": "users/1234567890987654321",
            "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/AAAABBBBBB/members/1234567890987654321"
    }
}
      
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/AAAABBBBBB",
        "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/AAAABBBBBB"
    }
}
      
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/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"
          }
        }
    ]
}
      
Không bao gồm dữ liệu tài nguyên
{
    "memberships": [
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/1234567890987654321"
          }
        },
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/98765432123456789019"
          }
        }
    ]
}
      
Một người dùng phản ứng với 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/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222",
        "user":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      
Bỏ qua dữ liệu tài nguyên
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
    }
}
      
Người dùng phản ứng với tin nhắn bằng biểu tượng cảm xúc 😊 và 😸. google.workspace.chat.reaction.v1.batchCreated
Bao gồm dữ liệu tài nguyên
{
    "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": "😸"
            }
          }
        }
    ]
}
      
Bỏ qua dữ liệu tài nguyên
{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
        },
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
        }
      }
    ]
}
      

Các điểm hạn chế

  • Đối với các gói thuê bao 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 đăng tin nhắn đầu tiên.
  • Để nhận được sự kiện liên quan đến gói thành viên, người dùng phải là thành viên trực tiếp của không gian. Nếu một người dùng được thêm, cập nhật hoặc xoá gián tiếp khỏi một không gian thông qua Nhóm Google, thì gói thuê bao sẽ không nhận được các sự kiện thành viên đó. Để tìm hiểu cách hoạt động của gói thành viên Google Groups, hãy xem bài viết Thêm nhóm trên Google Groups vào không gian.