LiveChatMessages: streamList

Phương thức này thiết lập một kết nối truyền phát trực tiếp từ máy chủ, cho phép bạn nhận tin nhắn trò chuyện trực tiếp cho một cuộc trò chuyện cụ thể với độ trễ thấp. Đây là cách hiệu quả nhất để sử dụng tin nhắn trò chuyện trực tiếp, vì cách này sẽ đẩy tin nhắn mới đến ứng dụng của bạn ngay khi có tin nhắn, thay vì yêu cầu bạn thăm dò ý kiến để biết thông tin cập nhật.

Khi bạn kết nối lần đầu, API sẽ gửi một loạt tin nhắn chứa nhật ký trò chuyện gần đây. Khi có tin nhắn mới, máy chủ sẽ tiếp tục gửi tin nhắn đó qua kết nối đang mở.

Các thông báo trong mỗi phản hồi của máy chủ được sắp xếp theo thứ tự từ cũ nhất đến mới nhất. Mỗi phản hồi cũng bao gồm một nextPageToken. Nếu máy khách của bạn ngắt kết nối, bạn có thể sử dụng mã thông báo này để tiếp tục truyền phát. Để làm như vậy, hãy cung cấp nextPageToken cuối cùng mà bạn nhận được làm giá trị cho tham số pageToken trong yêu cầu kết nối mới. Sau đó, API sẽ tiếp tục gửi thông báo từ thời điểm bạn dừng lại.

Bản minh hoạ

Để xem bản minh hoạ Python về điểm cuối này, hãy xem hướng dẫn Phát trực tiếp cuộc trò chuyện trực tiếp.

Yêu cầu

Thông số

Bảng sau đây liệt kê các tham số mà truy vấn này hỗ trợ. Tất cả các tham số được liệt kê đều là tham số truy vấn.

Thông số
Tham số bắt buộc
liveChatId string
Tham số liveChatId chỉ định mã nhận dạng của cuộc trò chuyện có tin nhắn sẽ được trả về. Mã nhận dạng 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.
part string
Tham số part chỉ định các phần tài nguyên liveChatMessage mà phản hồi API sẽ bao gồm. Các giá trị được hỗ trợ là id, snippetauthorDetails.
Thông số không bắt buộc
hl string
Tham số hl hướng dẫn API truy xuất chuỗi hiển thị đơn vị tiền tệ theo ngôn ngữ bản địa cho một ngôn ngữ ứng dụng cụ thể mà trang web YouTube hỗ trợ. Ví dụ: bằng tiếng Anh, đơn vị tiền tệ sẽ hiển thị là $1.50, nhưng bằng tiếng Pháp, đơn vị tiền tệ sẽ hiển thị là 1,50$.

Giá trị tham số phải là mã ngôn ngữ có trong danh sách do phương thức i18nLanguages.list trả về.
maxResults unsigned integer
Tham số maxResults chỉ định số lượng thư tối đa cần được trả về trong tập kết quả. Giá trị có thể chấp nhận là từ 200 đến 2000. Giá trị mặc định là 500.
pageToken string
Tham số pageToken xác định một trang cụ thể trong tập kết quả cần được trả về. Trong một phản hồi API, thuộc tính nextPageToken xác định những trang khác có thể truy xuất.
profileImageSize unsigned integer
Tham số profileImageSize chỉ định kích thước của ảnh hồ sơ người dùng cần được trả về trong tập kết quả. Hình ảnh có dạng hình vuông. Giá trị mặc định là 88, tức là hình ảnh sẽ có kích thước 88 px x 88 px. Giá trị có thể chấp nhận nằm trong khoảng từ 16 đến 720.

Nội dung yêu cầu

Không cung cấp nội dung yêu cầu khi gọi phương thức này.

Phản hồi

Nếu thành công, phương thức này sẽ trả về một phần nội dung phản hồi có cấu trúc sau:

{
  "kind": "youtube#liveChatMessageListResponse",
  "etag": etag,
  "nextPageToken": string,
  "pollingIntervalMillis": unsigned integer,
  "offlineAt": datetime,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    liveChatMessage Resource
  ],
  "activePollItem": liveChatMessage Resource
}

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#liveChatMessageListResponse.
etag etag
Etag của tài nguyên này.
nextPageToken string
Mã thông báo có thể dùng làm giá trị của tham số pageToken để truy xuất trang tiếp theo trong tập kết quả.
offlineAt datetime
Ngày và giờ mà phiên phát trực tiếp cơ bản chuyển sang chế độ ngoại tuyến. Thuộc tính này chỉ xuất hiện nếu luồng phát đã ở chế độ ngoại tuyến. Giá trị được chỉ định ở định dạng ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
pageInfo object
Đối tượng pageInfo bao bọc thông tin phân trang cho tập hợp kết quả.
pageInfo.totalResults integer
Tổng số kết quả trong tập kết quả.
pageInfo.resultsPerPage integer
Số lượng kết quả có trong phản hồi của API.
items[] list
Danh sách tin nhắn. Mỗi mục trong danh sách là một tài nguyên liveChatMessage.
activePollItem object
Dữ liệu về cuộc thăm dò ý kiến trong thông báo. Mỗi cuộc thăm dò là một tài nguyên liveChatMessage có loại pollEvent, đại diện cho một cuộc thăm dò đang diễn ra. Mỗi cuộc trò chuyện chỉ được có một cuộc thăm dò ý kiến.

Lỗi

Bảng sau đây xác định các thông báo lỗi mà API có thể trả về để phản hồi một lệnh gọi đến phương thức này. Hãy xem tài liệu về thông báo lỗi để biết thêm thông tin chi tiết.

Khi sử dụng gRPC để kết nối:

Mã lỗi gRPC Thông tin chi tiết về lỗi Mô tả
PERMISSION_DENIED (7) The caller does not have permission Bạn không có các quyền cần thiết để truy xuất tin nhắn cho cuộc trò chuyện trực tiếp được chỉ định.
INVALID_ARGUMENT (3) Request contains an invalid argument Không phân tích cú pháp được các thông số đã cung cấp. Đảm bảo rằng liveChatId và các tham số khác có định dạng chính xác.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_DISABLED. Tính năng trò chuyện trực tiếp được chỉ định đã bị tắt.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_ENDED. Bạn không thể truy xuất tin nhắn của cuộc trò chuyện trực tiếp đã kết thúc.
NOT_FOUND (5) Requested entity was not found Không tìm thấy cuộc trò chuyện trực tiếp mà bạn đang cố gắng truy xuất. Kiểm tra giá trị của tham số liveChatId trong yêu cầu để đảm bảo rằng giá trị đó chính xác.
RESOURCE_EXHAUSTED (8) Resource has been exhausted (e.g. check quota) Yêu cầu được gửi quá nhanh sau yêu cầu trước đó. Lỗi này xảy ra khi các yêu cầu API để truy xuất thông báo được gửi thường xuyên hơn tốc độ làm mới của YouTube, điều này gây lãng phí băng thông một cách không cần thiết.

* Do hạn chế của gRPC, bạn không thể phân biệt dựa trên mã lỗi giữa trường hợp LIVE_CHAT_DISABLED và trường hợp LIVE_CHAT_ENDED. YouTube đang nỗ lực tìm giải pháp cho vấn đề này.

Khi sử dụng lưu lượng truy cập web để kết nối:

Loại lỗi Thông tin chi tiết về lỗi Mô tả
HttpStatus.FORBIDDEN (403) forbidden Bạn không có các quyền cần thiết để truy xuất tin nhắn cho cuộc trò chuyện trực tiếp được chỉ định.
HttpStatus.BAD_REQUEST (400) Reason for invalid request, e.g. pageTokenInvalid Không phân tích cú pháp được các thông số đã cung cấp. Đảm bảo rằng liveChatId và các tham số khác có định dạng chính xác.
HttpStatus.FORBIDDEN (403) liveChatDisabled LIVE_CHAT_DISABLED. Tính năng trò chuyện trực tiếp được chỉ định đã bị tắt.
HttpStatus.FORBIDDEN (403) liveChatEnded LIVE_CHAT_ENDED. Bạn không thể truy xuất tin nhắn của cuộc trò chuyện trực tiếp đã kết thúc.
HttpStatus.NOT_FOUND (404) liveChatNotFound Không tìm thấy cuộc trò chuyện trực tiếp mà bạn đang cố gắng truy xuất. Kiểm tra giá trị của tham số liveChatId trong yêu cầu để đảm bảo rằng giá trị đó chính xác.
HttpStatus.FORBIDDEN (403) rateLimitExceeded Yêu cầu được gửi quá nhanh sau yêu cầu trước đó. Lỗi này xảy ra khi các yêu cầu API để truy xuất thông báo được gửi thường xuyên hơn tốc độ làm mới của YouTube, điều này gây lãng phí băng thông một cách không cần thiết.