LiveChatMessages

Tài nguyên liveChatMessage đại diện cho một tin nhắn trò chuyện trong cuộc trò chuyện trực tiếp trên YouTube. Tài nguyên này 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 sự kiện phát trực tiếp và có sẵn trong khi sự kiện phát 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 hoạt động nữa đối với sự kiện đó.)

Phương thức

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

list
Liệt kê tin nhắn trò chuyện trực tiếp của một cuộc trò chuyện cụ thể. Thử ngay.
chèn
Thêm tin nhắn hoặc cuộc thăm dò ý kiến vào cuộc trò chuyện trực tiếp. Thử ngay.
transition
Chuyển đổi trạng thái của thông báo trực tiếp. Thử ngay.
xóa
Xoá 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 cuộc trò chuyện trực tiếp cho phép. Thử ngay.

Biểu thị tài nguyên

Cấu trúc JSON sau đây cho thấy đị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
    },
    "pollDetails": {
      "metadata": {
        "options": {
          "optionText": string,
          "tally": string,
        },
        "questionText": string,
        "status": enum
      },
    },
    "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
Etag của tài nguyên này.
id string
Mã do YouTube chỉ định để nhận dạng duy nhất thông báo.
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 có và giá trị của thuộc tính này xác định những trường có 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à bạn không thể chèn thêm tin nhắn nào sau tin nhắn này. Quá trình này sẽ diễn ra một cách tự nhiên sau khi sự kiện phát trực tiếp 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 sự kiện phát trực tiếp mặc định của kênh.
  • messageDeletedEvent – Người kiểm duyệt đã xoá một 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ó nội dung hiển thị.
  • 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ó nội dung hiển thị.
  • 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. Các trường author chứa thông tin chi tiết về nhà tài trợ mới.
  • memberMilestoneChatEvent – Một người dùng đã gửi 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 – Người dùng đã mua một Super Stickers.
  • textMessageEvent – Người dùng đã gửi tin nhắn văn bản.
  • tombstone – Dấu mộ bia cho biết rằng 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á. Loại thông báo này không được gửi khi xoá một tin nhắn, mà được hiển thị để cho biết vị trí của tin nhắn trước khi xoá. Loại thông báo này chỉ có các trường snippet.liveChatId, snippet.typesnippet.publishedAt.
  • 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 – Một người dùng đã mua gói hội viên cho người xem khác.
  • giftMembershipReceivedEvent – Một người dùng đã nhận được quà tặng gói hội viên.
  • pollDetails – Một người dùng đã tạo cuộc thăm dò ý kiến trực tiếp.
snippet.liveChatId string
Mã nhận dạng duy nhất xác định cuộc trò chuyện trực tiếp 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 thông báo sẽ đượ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 đã soạn thư. Trường này chỉ được điền cho các loại tin nhắn 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 đã tài trợ cho thông báo truyền tin.
  • Nếu loại thông báo là messageDeletedEvent, thì giá trị thuộc tính sẽ xác định người kiểm duyệt đã xoá thông báo đó.
  • 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 sẽ 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 thành 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 được gói thành viên quà tặng.
  • Nếu loại thông báo là pollEvent, thì giá trị thuộc tính sẽ xác định người dùng đã tạo cuộc thăm dò ý kiến trực tiếp.
snippet.publishedAt datetime
Ngày và giờ đăng thông báo ban đầu. Giá trị được chỉ định ở định dạng ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.hasDisplayContent boolean
Cho biết thông báo có nội dung hiển thị cần hiển thị cho người dùng hay không.
snippet.displayMessage string
Chứa một chuỗi hiển thị cho người dùng. 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, tài nguyên liveChatMessage 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ộ nữa.

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

Số tiền của quỹ.
snippet.fanFundingEventDetails.currency string
Lưu ý: Thuộc tính này không còn được dùng nữa.

Đơn vị tiền tệ dùng để tạo quỹ.
snippet.fanFundingEventDetails.amountDisplayString string
Lưu ý: Thuộc tính này không còn được dùng nữa.

Một chuỗi đã kết xuất hiển thị số tiền và đơn vị tiền tệ cho người dùng.
snippet.fanFundingEventDetails.userComment string
Lưu ý: Chúng tôi không còn sử dụng thuộc tính này 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ộ này.
snippet.textMessageDetails object
Đối tượng này chứa thông tin chi tiết về tin nhắn văn bản. Thuộc tính này chỉ xuất hiện 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 trực tiếp xoá. Thuộc tính này chỉ xuất hiện nếu loại thông báomessageDeletedEvent.
snippet.messageDeletedDetails.deletedMessageId string
Mã nhận dạng duy nhất của thư đã 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 ban đầu. Ví dụ: nếu textMessageEvent có giá trị thuộc tính id123 và sau đó thông báo đó bị xoá, thì giá trị snippet.messageDeletedDetails.deletedMessageId sẽ là 123 cho thông báo đó.

Nếu bạn lưu thông báo trò chuyện vào bộ nhớ đệm sau khi truy xuất, hãy sử dụng giá trị của thuộc tính này để xác định thông báo không còn hiển thị 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. Email này cũng chứa thông tin chi tiết về 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 của kênh YouTube của người dùng bị cấm.
snippet.userBannedDetails.bannedUserDetails.displayName string
Tên hiển thị của kênh YouTube của người dùng bị cấm.
snippet.userBannedDetails.bannedUserDetails.profileImageUrl string
Hình đại diện của kênh YouTube của người dùng bị cấm.
snippet.userBannedDetails.banType string
Loại lệnh 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 bị 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ề sự kiện Mốc của thành viên. Thuộc tính này chỉ xuất hiện nếu loại thông báomemberMilestoneChatEvent.
snippet.memberMilestoneChatDetails.userComment string
Bình luận mà thành 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 những tin nhắn không có bình luận của thành viên.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
Tổng số tháng (làm tròn lên) mà người xem đã làm hội viên để nhận được Tin nhắn ghi nhận cột mốc làm hội viên này. Đây là số tháng giống với số tháng mà người dùng YouTube nhìn thấy.
snippet.memberMilestoneChatDetails.memberLevelName string
Tên của Cấp mà người xem là thành viên. Tên cấp được xác định bởi kênh YouTube cung cấp gói 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 thành viên mới. Bạn chỉ có thể đặt thuộc tính này nếu loại là newSponsorEvent. "Thành viên" là từ dùng để chỉ "người tài trợ".
snippet.newSponsorDetails.memberLevelName string
Tên của Cấp mà người xem là thành viên. Tên cấp được xác định bởi kênh YouTube cung cấp gói 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 người xem có 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à thành viên tại thời điểm mua, giá trị 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. Thuộc tính này chỉ xuất hiện nếu loại thông báosuperChatEvent.
snippet.superChatDetails.amountMicros unsigned long
Số tiền mua, tính bằng micro của đơn vị tiền tệ của giao dịch mua. Ví dụ: nếu số tiền mua là một đô la, thì giá trị thuộc tính snippet.amountMicros1000000.
snippet.superChatDetails.currency string
Đơn vị tiền tệ dùng để mua hàng. Giá trị này là mã tiền tệ ISO 4217.
snippet.superChatDetails.amountDisplayString string
Một chuỗi, chẳng hạn như $1.00, chứa số tiền và đơn vị tiền tệ của giao dịch mua. Chuỗi này được dùng để hiển thị cho người dùng.
snippet.superChatDetails.userComment string
Bình luận mà 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.

Mức này dựa trên số tiền chi tiêu để mua thông báo. Mức giá cũng xác định màu sắc dùng để làm nổi bật tin nhắn trong giao diện người dùng của cuộc trò chuyện trực tiếp, độ dài tối đa của tin nhắn và khoảng thời gian tin nhắn được ghim trong dòng 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ề chi tiết giao dịch mua Super Chat.) Trong danh sách đó, cấp có số tiền mua hàng thấp nhất là cấp 1, số tiền thấp 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 Sticker. Thuộc tính này chỉ xuất hiện nếu loại thông báosuperStickerEvent.
snippet.superStickerDetails.superStickerMetadata object
Thông tin chi tiết về Hình dán đặc biệt.
snippet.superStickerDetails.superStickerMetadata.stickerId string
Mã nhận dạng duy nhất giúp xác định hình ảnh hình dán. Xin lưu ý rằng hình ảnh chỉ xuất hiện trong tin nhắn Super Sticker khi người dùng xem cửa sổ trò chuyện trên YouTube. Tuy nhiên, bạn không thể sử dụng API để lấy URL hình ảnh. Chỉ để tham khảo, bạn có thể tìm thấy mã nhãn dán liên quan đến Super Stickers trong tệp CSV này.
snippet.superStickerDetails.superStickerMetadata.altText string
Một 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 micro của đơn vị tiền tệ của giao dịch mua. Ví dụ: nếu số tiền mua là một đô la, thì giá trị thuộc tính snippet.amountMicros1000000.
snippet.superStickerDetails.currency string
Đơn vị tiền tệ dùng để mua hàng. Giá trị này là mã tiền tệ ISO 4217.
snippet.superStickerDetails.amountDisplayString string
Một chuỗi, chẳng hạn như $1.00, chứa số tiền và đơn vị tiền tệ của giao dịch mua. Chuỗi này được dùng để hiển thị cho người dùng.
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.

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

Các cấp Super Chat (cũng áp dụng cho Super Stickers) được ghi lại trong Trung tâm trợ giúp của YouTube. (Xem phần có thể mở rộng về chi tiết giao dịch mua Super Chat.) Trong danh sách đó, cấp có số tiền mua hàng thấp nhất là cấp 1, số tiền thấp 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ề một sự kiện thăm dò ý kiến. Thuộc tính này chỉ xuất hiện 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
Văn bản của lựa chọn trong cuộc thăm dò ý kiến trực tiếp.
snippet.pollDetails.metadata.options.tally string
Kết quả kiểm đếm của lựa chọn cuộc thăm dò ý kiến trực tiếp. Số liệu này chỉ xuất hiện nếu chủ sở hữu kênh cho phép yêu cầu API.
snippet.pollDetails.metadata.questionText string
Văn bản của câu hỏi trong cuộc 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. Các giá trị hợp lệ cho thuộc tính 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 gói hội viên tặng mà người dùng đã mua.
snippet.membershipGiftingDetails.giftMembershipsLevelName string
Tên của Cấp của gói thành viên quà tặng mà người dùng đã mua. Tên cấp được xác định bởi kênh YouTube cung cấp gói 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ề sự kiện Nhận quà tặng gói thành 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à thành viên. Mã này khớp với snippet.membershipGiftingDetails.giftMembershipsLevelName của thông báo tặng gói hội viên được liên kết. Tên cấp được xác định bởi kênh YouTube cung cấp gói 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 đã mua gói thành viên để tặng. Mã này khớp với snippet.authorChannelId của thông báo tặng gói hội viên được liên kết.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
Mã của thư tặng gói hội viên liên quan đến gói hội viên tặng này. Mã 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 thông báo này.
authorDetails.channelId string
Mã nhận dạng kênh YouTube của tác giả.
authorDetails.channelUrl string
URL của kênh YouTube của tác giả.
authorDetails.displayName string
Tên hiển thị của kênh YouTube của tác giả.
authorDetails.profileImageUrl string
URL hình đại diện của kênh YouTube của tác giả.
authorDetails.isVerified boolean
Giá trị này cho biết liệu 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 liệu 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 cuộc trò chuyện trực tiếp hay không.