LiveChatMessages

Tài nguyên liveChatMessage đại diện cho một tin nhắn trò chuyện trong một cuộc trò chuyện trực tiếp trên YouTube. Tài nguyên có thể chứa thông tin chi tiết về một số loại tin nhắn, bao gồm cả tin nhắn văn bản mới đăng hoặc sự kiện tài trợ của người hâm mộ.

Tính năng trò chuyện trực tiếp được bật theo mặc định cho các buổi phát sóng trực tiếp và hoạt động khi sự kiện trực tiếp đang diễn ra. (Sau khi sự kiện kết thúc, tính năng trò chuyện trực tiếp sẽ không còn hoạt động cho sự kiện đó nữa.)

Phương thức

API hỗ trợ các phương thức sau cho tài nguyên liveChatMessages:

list
Liệt kê các tin nhắn trò chuyện trực tiếp cho một cuộc trò chuyện cụ thể. Thử ngay.
chèn
Thêm tin nhắn vào cuộc trò chuyện trực tiếp. Thử ngay.
xóa
Xóa tin nhắn trò chuyện. Yêu cầu API phải được chủ sở hữu kênh hoặc người kiểm duyệt của cuộc trò chuyện trực tiếp uỷ quyền. Thử ngay.

Trình bày tài nguyên

Cấu trúc JSON dưới đây thể hiện định dạng của tài nguyên liveChatMessages:

{
  "kind": "youtube#liveChatMessage",
  "etag": etag,
  "id": string,
  "snippet": {
    "type": string,
    "liveChatId": string,
    "authorChannelId": string,
    "publishedAt": datetime,
    "hasDisplayContent": boolean,
    "displayMessage": string,
    "fanFundingEventDetails": {
      "amountMicros": unsigned long,
      "currency": string,
      "amountDisplayString": string,
      "userComment": string
    },
    "textMessageDetails": {
      "messageText": string
    },
    "messageDeletedDetails": {
      "deletedMessageId": string
    },
    "userBannedDetails": {
      "bannedUserDetails": {
        "channelId": string,
        "channelUrl": string,
        "displayName": string,
        "profileImageUrl": string
      },
      "banType": string,
      "banDurationSeconds": unsigned long
    },
    "memberMilestoneChatDetails": {
      "userComment": string,
      "memberMonth": unsigned integer,
      "memberLevelName": string
    },
    "newSponsorDetails": {
      "memberLevelName": string,
      "isUpgrade": bool
    },
    "superChatDetails": {
      "amountMicros": unsigned long,
      "currency": string,
      "amountDisplayString": string,
      "userComment": string,
      "tier": unsigned integer
    },
    "superStickerDetails": {
      "superStickerMetadata": {
        "stickerId": string,
        "altText": string,
        "language": string
      },
      "amountMicros": unsigned long,
      "currency": string,
      "amountDisplayString": string,
      "tier": unsigned integer
    },
    "membershipGiftingDetails": {
      "giftMembershipsCount": integer,
      "giftMembershipsLevelName": string
    },
    "giftMembershipReceivedDetails": {
      "memberLevelName": string,
      "gifterChannelId": string,
      "associatedMembershipGiftingMessageId": string
    },
  },
  "authorDetails": {
    "channelId": string,
    "channelUrl": string,
    "displayName": string,
    "profileImageUrl": string,
    "isVerified": boolean,
    "isChatOwner": boolean,
    "isChatSponsor": boolean,
    "isChatModerator": boolean
  },
}

Thuộc tính

Bảng sau đây xác định các thuộc tính xuất hiện trong tài nguyên này:

Thuộc tính
kind string
Xác định loại tài nguyên API. Giá trị sẽ là youtube#liveChatMessage.
etag etag
Thẻ Etag của tài nguyên này.
id string
Mã nhận dạng do YouTube gán để xác định chính xác thông điệp đó.
snippet object
Đối tượng snippet chứa thông tin chi tiết chính về tin nhắn trò chuyện.
snippet.type string
Loại thông báo. Thuộc tính này luôn tồn tại và giá trị của thuộc tính này xác định những trường xuất hiện trong tài nguyên.

Các giá trị hợp lệ cho thuộc tính này là:
  • chatEndedEvent – Cuộc trò chuyện đã kết thúc và không thể chèn thêm tin nhắn sau cuộc trò chuyện này. Việc này sẽ diễn ra tự nhiên sau một chút thời gian sau khi sự kiện phát sóng kết thúc. Loại tin nhắn này không được gửi cho các cuộc trò chuyện trực tiếp trên nội dung phát mặc định của kênh.
  • messageDeletedEvent – Người kiểm duyệt đã xóa tin nhắn. Trường author chứa thông tin chi tiết về người kiểm duyệt. Sự kiện này không có bất kỳ nội dung hiển thị nào.
  • sponsorOnlyModeEndedEvent – Cuộc trò chuyện không còn ở chế độ chỉ dành cho nhà tài trợ, tức là những người dùng không phải là nhà tài trợ hiện có thể gửi tin nhắn. Sự kiện này không có bất kỳ nội dung hiển thị nào.
  • sponsorOnlyModeStartedEvent – Cuộc trò chuyện đã chuyển sang chế độ chỉ dành cho nhà tài trợ, tức là chỉ nhà tài trợ mới có thể gửi tin nhắn. Sự kiện này không có nội dung hiển thị.
  • newSponsorEvent – Một người dùng mới đã tài trợ cho kênh sở hữu cuộc trò chuyện trực tiếp này. Các trường author chứa thông tin chi tiết về nhà tài trợ mới.
  • memberMilestoneChatEvent – Người dùng đã gửi một Tin nhắn ghi nhận cột mốc làm hội viên.
  • superChatEvent – Một người dùng đã mua Super Chat.
  • superStickerEvent – Một người dùng đã mua một Super Stickers.
  • textMessageEvent – Người dùng đã gửi một tin nhắn văn bản.
  • tombstone – Tombstone cho biết một thông báo từng tồn tại với mã nhận dạng và thời gian xuất bản này nhưng đã bị xoá. Thông báo này không được gửi đi khi thư bị xoá, mà được hiển thị để biểu thị vị trí của thông báo trước khi bị xoá. Chỉ các trường snippet.liveChatId, snippet.typesnippet.publishedAt là hiện diện trong loại thông báo này.
  • userBannedEvent – Người dùng đã bị người kiểm duyệt cấm. Trường author chứa thông tin chi tiết về người kiểm duyệt.
  • membershipGiftingEvent – Người dùng đã mua gói hội viên cho người xem khác.
  • giftMembershipReceivedEvent – Người dùng đã nhận được quà tặng gói hội viên.
snippet.liveChatId string
Mã nhận dạng duy nhất cuộc trò chuyện trực tiếp có liên kết với tin nhắn đó. Mã cuộc trò chuyện trực tiếp liên kết với một chương trình phát sóng được trả về trong thuộc tính snippet.liveChatId của tài nguyên liveBroadcast.
snippet.authorChannelId string
Mã nhận dạng của người dùng đã tạo thông báo. Trường này chỉ được điền cho các loại thông báo sau:
  • Nếu loại thông báo là textMessageEvent, thì giá trị thuộc tính sẽ xác định người dùng đã viết thông báo.
  • Nếu loại thông báo là fanFundingEvent, thì giá trị thuộc tính sẽ xác định người dùng đã cấp tiền cho chương trình phát sóng.
  • Nếu loại tin nhắn là messageDeletedEvent, thì giá trị thuộc tính sẽ xác định người kiểm duyệt đã xoá tin nhắn.
  • Nếu loại thông báo là newSponsorEvent, thì giá trị thuộc tính sẽ xác định người dùng vừa trở thành nhà tài trợ.
  • Nếu loại thông báo là memberMilestoneChatEvent, thì giá trị thuộc tính sẽ xác định thành viên đã gửi thông báo.
  • Nếu loại thông báo là userBannedEvent, thì giá trị thuộc tính xác định người kiểm duyệt đã cấm người dùng đó.
  • Nếu loại thông báo là membershipGiftingEvent, thì giá trị thuộc tính sẽ xác định người dùng đã thực hiện giao dịch mua quà tặng gói hội viên.
  • Nếu loại thông báo là giftMembershipReceivedEvent, thì giá trị thuộc tính sẽ xác định người dùng đã nhận quà tặng gói hội viên.
snippet.publishedAt datetime
Ngày và giờ xuất bản thông báo lần đầu. Giá trị được chỉ định theo định dạng ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.hasDisplayContent boolean
Cho biết liệu thông báo có nội dung hiển thị cần hiển thị với người dùng hay không.
snippet.displayMessage string
Chứa một chuỗi mà người dùng nhìn thấy. Trường này sẽ không xuất hiện nếu loại thông báochatEndedEvent hoặc tombstone.
snippet.fanFundingEventDetails object
Lưu ý: Đối tượng này và các thuộc tính con của đối tượng này không còn được dùng nữa. Kể từ ngày 28 tháng 2 năm 2017, liveChatMessage tài nguyên sẽ không còn trả về thông tin chi tiết về các sự kiện Tài trợ của người hâm mộ.

Đối tượng này chứa thông tin chi tiết về sự kiện tài trợ. Thông báo này chỉ hiển thị nếu loại thông báofanFundingEvent.
snippet.fanFundingEventDetails.amountMicros unsigned long
Lưu ý: Tài sản này không còn được dùng nữa.

Số tiền của quỹ.
snippet.fanFundingEventDetails.currency string
Lưu ý: Tài sản này không còn được dùng nữa.

Đơn vị tiền tệ của quỹ.
snippet.fanFundingEventDetails.amountDisplayString string
Lưu ý: Tài sản này không còn được dùng nữa.

Một chuỗi được kết xuất để cho người dùng thấy số tiền và đơn vị tiền tệ.
snippet.fanFundingEventDetails.userComment string
Lưu ý: Tài sản này không còn được dùng nữa.

Bình luận do người dùng thêm vào sự kiện tài trợ của người hâm mộ.
snippet.textMessageDetails object
Đối tượng này chứa thông tin chi tiết về tin nhắn văn bản. Thông báo này chỉ hiển thị nếu loại thông báotextMessageEvent.
snippet.textMessageDetails.messageText string
Tin nhắn của người dùng.
snippet.messageDeletedDetails object
Đối tượng này chứa thông tin chi tiết về tin nhắn do người kiểm duyệt cuộc trò chuyện hoặc chủ sở hữu kênh phát sóng trực tiếp xoá. Thông báo này chỉ hiển thị nếu loại thông báomessageDeletedEvent.
snippet.messageDeletedDetails.deletedMessageId string
Mã nhận dạng xác định riêng biệt thông báo đã xoá. Giá trị này giống với giá trị thuộc tính id của tin nhắn văn bản gốc. Ví dụ: Nếu textMessageEvent có giá trị thuộc tính id123 và tin nhắn đó sau đó bị xoá, thì giá trị snippet.messageDeletedDetails.deletedMessageId sẽ là 123 cho tin nhắn đó.

Nếu bạn lưu tin nhắn trò chuyện vào bộ nhớ đệm sau khi truy xuất, hãy dùng giá trị của thuộc tính này để xác định tin nhắn không xuất hiện nữa.
snippet.userBannedDetails object
Đối tượng này chứa thông tin chi tiết về một người dùng đã bị cấm tham gia cuộc trò chuyện. Bài đăng này cũng chứa thông tin chi tiết về chính lệnh cấm. Người dùng có thể bị cấm tham gia cuộc trò chuyện vĩnh viễn hoặc tạm thời.
snippet.userBannedDetails.bannedUserDetails object
Đối tượng này chứa thông tin về người dùng bị cấm.
snippet.userBannedDetails.bannedUserDetails.channelId string
Mã nhận dạng kênh YouTube của người dùng bị cấm.
snippet.userBannedDetails.bannedUserDetails.channelUrl string
URL kênh YouTube của người dùng bị cấm.
snippet.userBannedDetails.bannedUserDetails.displayName string
Tên hiển thị kênh YouTube của người dùng bị cấm.
snippet.userBannedDetails.bannedUserDetails.profileImageUrl string
Hình đại diện kênh YouTube của người dùng bị cấm.
snippet.userBannedDetails.banType string
Hình thức cấm. Các giá trị hợp lệ cho thuộc tính này là:
  • vĩnh viễn
  • tạm thời
snippet.userBannedDetails.banDurationSeconds unsigned long
Thời gian cấm. Thuộc tính này chỉ xuất hiện nếu giá trị thuộc tính snippet.userBannedDetails.banTypetemporary.
snippet.memberMilestoneChatDetails object
Đối tượng này chứa thông tin chi tiết về một sự kiện Cột mốc làm hội viên. Thông báo này chỉ hiển thị nếu loại thông báomemberMilestoneChatEvent.
snippet.memberMilestoneChatDetails.userComment string
Bình luận mà hội viên đã thêm vào Tin nhắn ghi nhận cột mốc làm hội viên này. Trường này trống đối với các tin nhắn không có nhận xét của thành viên.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
Tổng số tháng (đã làm tròn) mà một người xem làm hội viên đã trao cho họ Tin nhắn ghi nhận cột mốc làm hội viên này. Số tháng này bằng với số tháng hiển thị cho người dùng YouTube.
snippet.memberMilestoneChatDetails.memberLevelName string
Tên của Cấp độ mà người xem là hội viên. Tên Cấp độ được xác định theo kênh YouTube cung cấp chương trình Hội viên. Trong một số trường hợp, trường này không được điền.
snippet.newSponsorDetails object
Đối tượng này chứa thông tin chi tiết về sự kiện Thông báo dành cho thành viên mới. Thuộc tính này chỉ được thiết lập nếu kiểu dữ liệu là newSponsorEvent. "Thành viên" là thuật ngữ dành cho "người tài trợ".
snippet.newSponsorDetails.memberLevelName string
Tên của Cấp độ mà người xem là hội viên. Tên Cấp độ được xác định theo kênh YouTube cung cấp chương trình Hội viên. Trong một số trường hợp, trường này không được điền.
snippet.newSponsorDetails.isUpgrade bool
Cho biết có phải người xem vừa nâng cấp từ một Cấp thấp hơn hay không. Đối với những người xem không phải là hội viên tại thời điểm mua hàng, giá trị của trường là false.
snippet.superChatDetails object
Đối tượng này chứa thông tin chi tiết về một sự kiện Super Chat. Thông báo này chỉ hiển thị nếu loại thông báosuperChatEvent.
snippet.superChatDetails.amountMicros unsigned long
Số tiền mua, tính bằng phần triệu đơn vị tiền tệ của giao dịch mua. Ví dụ: nếu chi phí mua hàng là 1 đô la, thì giá trị của thuộc tính snippet.amountMicros1000000.
snippet.superChatDetails.currency string
Đơn vị tiền tệ dùng để thực hiện giao dịch mua. Giá trị này là mã đơn vị tiền tệ theo tiêu chuẩn ISO 4217.
snippet.superChatDetails.amountDisplayString string
Một chuỗi, chẳng hạn như $1.00, chứa số tiền mua và đơn vị tiền tệ. Chuỗi này dành cho người dùng thấy.
snippet.superChatDetails.userComment string
Bình luận do người dùng thêm vào sự kiện Super Chat này.
snippet.superChatDetails.tier unsigned integer
Cấp của tin nhắn có tính phí. Xin lưu ý rằng trong tài nguyên superChatEvent, thuộc tính snippet.messageType chứa giá trị này.

Cấp dựa trên số tiền chi tiêu để mua thông báo. Mã này cũng quyết định màu sắc dùng để làm nổi bật tin nhắn trong giao diện của cuộc trò chuyện trực tiếp, thời lượng tin nhắn tối đa và thời gian ghim tin nhắn.

Các bậc Super Chat được ghi lại trong Trung tâm trợ giúp của YouTube. (Xem phần có thể mở rộng về thông tin mua Super Chat.) Trong danh sách đó, cấp có số tiền mua thấp nhất là cấp 1, cấp thấp nhất tiếp theo là cấp 2, v.v.
snippet.superStickerDetails object
Đối tượng này chứa thông tin chi tiết về một sự kiện Super Stickers. Thông báo này chỉ hiển thị nếu loại thông báosuperStickerEvent.
snippet.superStickerDetails.superStickerMetadata object
Thông tin chi tiết về Super Stickers.
snippet.superStickerDetails.superStickerMetadata.stickerId string
Mã nhận dạng duy nhất giúp xác định hình dán của hình dán. Xin lưu ý rằng hình ảnh này chỉ xuất hiện trong tin nhắn Super Stickers khi người dùng xem cửa sổ trò chuyện trên YouTube. Tuy nhiên, URL hình ảnh không sử dụng được khi sử dụng API. Trong tệp CSV này, bạn có thể tìm thấy mã hình dán liên quan đến Super Stickers nào để tham khảo.
snippet.superStickerDetails.superStickerMetadata.altText string
Chuỗi văn bản mô tả hình dán. Trường snippet.superStickerDetails.superStickerMetadata.language xác định ngôn ngữ của văn bản. Khi gọi phương thức liveChatMessages.list, hãy đặt giá trị tham số hl thành ngôn ngữ đã chọn cho văn bản.
snippet.superStickerDetails.superStickerMetadata.language string
Ngôn ngữ của giá trị thuộc tính snippet.superStickerDetails.superStickerMetadata.altText.
snippet.superStickerDetails.amountMicros unsigned long
Số tiền mua, tính bằng phần triệu đơn vị tiền tệ của giao dịch mua. Ví dụ: nếu chi phí mua hàng là 1 đô la, thì giá trị của thuộc tính snippet.amountMicros1000000.
snippet.superStickerDetails.currency string
Đơn vị tiền tệ dùng để thực hiện giao dịch mua. Giá trị này là mã đơn vị tiền tệ theo tiêu chuẩn ISO 4217.
snippet.superStickerDetails.amountDisplayString string
Một chuỗi, chẳng hạn như $1.00, chứa số tiền mua và đơn vị tiền tệ. Chuỗi này dành cho người dùng thấy.
snippet.superStickerDetails.tier unsigned integer
Cấp của tin nhắn có tính phí. Xin lưu ý rằng trong tài nguyên superChatEvent, thuộc tính snippet.messageType chứa giá trị này.

Cấp dựa trên số tiền chi tiêu để mua thông báo. Trạng thái này cũng xác định màu sắc dùng để làm nổi bật tin nhắn trong giao diện của cuộc trò chuyện trực tiếp, thời lượng tin nhắn tối đa và thời gian ghim tin nhắn.

Các bậc Super Chat (bao gồm cả Super Stickers) được trình bày trong Trung tâm trợ giúp của YouTube. (Xem phần có thể mở rộng về thông tin mua Super Chat.) Trong danh sách đó, cấp có số tiền mua thấp nhất là cấp 1, cấp thấp nhất tiếp theo là cấp 2, v.v.
snippet.pollDetails object
Đối tượng này chứa thông tin chi tiết về sự kiện thăm dò ý kiến. Thông báo này chỉ hiển thị nếu loại thông báopollEvent.
snippet.pollDetails.metadata object
Thông tin chi tiết về sự kiện thăm dò ý kiến.
snippet.pollDetails.metadata.options object
Các lựa chọn trong cuộc thăm dò ý kiến trực tiếp.
snippet.pollDetails.metadata.options.optionText string
Nội dung của lựa chọn thăm dò ý kiến trực tiếp.
snippet.pollDetails.metadata.options.questionText string
Nội dung của câu hỏi thăm dò ý kiến trực tiếp.
snippet.pollDetails.metadata.status enum
Trạng thái của sự kiện thăm dò ý kiến trực tiếp. Giá trị hợp lệ cho tài sản này là:
  • unknown
  • active
  • closed
snippet.membershipGiftingDetails object
Đối tượng này chứa thông tin chi tiết về sự kiện Tặng gói hội viên. Thuộc tính này chỉ xuất hiện nếu message typemembershipGiftingEvent.
snippet.membershipGiftingDetails.giftMembershipsCount integer
Số lượng quà tặng gói hội viên mà người dùng đã mua.
snippet.membershipGiftingDetails.giftMembershipsLevelName string
Tên cấp độ của quà tặng gói hội viên mà người dùng đã mua. Tên cấp được xác định theo kênh YouTube cung cấp chương trình Hội viên. Trong một số trường hợp, trường này không được điền.
snippet.giftMembershipReceivedDetails object
Đối tượng này chứa thông tin chi tiết về một sự kiện Nhận quà tặng gói hội viên. Thuộc tính này chỉ xuất hiện nếu message typegiftMembershipReceivedEvent.
snippet.giftMembershipReceivedDetails.memberLevelName string
Tên của Cấp độ mà người xem là hội viên. Mã này khớp với snippet.membershipGiftingDetails.giftMembershipsLevelName trong tin nhắn tặng gói hội viên có liên quan. Tên cấp được xác định theo kênh YouTube cung cấp chương trình Hội viên. Trong một số trường hợp, trường này không được điền.
snippet.giftMembershipReceivedDetails.gifterChannelId string
Mã nhận dạng của người dùng đã thực hiện giao dịch mua quà tặng gói hội viên. Mã này khớp với snippet.authorChannelId trong tin nhắn tặng gói hội viên có liên quan.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
Mã của tin nhắn tặng gói hội viên có liên quan đến quà tặng gói hội viên này. Mã nhận dạng này sẽ luôn tham chiếu đến một thông báo có typemembershipGiftingEvent.
authorDetails object
Đối tượng authorDetails chứa thông tin chi tiết bổ sung về người dùng đã đăng tin nhắn này.
authorDetails.channelId string
Mã nhận dạng kênh YouTube của tác giả.
authorDetails.channelUrl string
URL kênh YouTube của tác giả.
authorDetails.displayName string
Tên hiển thị kênh YouTube của tác giả.
authorDetails.profileImageUrl string
URL hình đại diện kênh YouTube của tác giả.
authorDetails.isVerified boolean
Giá trị này cho biết danh tính của tác giả đã được YouTube xác minh hay chưa.
authorDetails.isChatOwner boolean
Giá trị này cho biết tác giả có phải là chủ sở hữu của cuộc trò chuyện trực tiếp hay không.
authorDetails.isChatSponsor boolean
Giá trị này cho biết tác giả có phải là nhà tài trợ của cuộc trò chuyện trực tiếp hay không.
authorDetails.isChatModerator boolean
Giá trị này cho biết tác giả có phải là người kiểm duyệt của cuộc trò chuyện trực tiếp hay không.