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 , snippet và authorDetails . |
|
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. |