LiveChatMessages: streamList

Ta metoda nawiązuje połączenie strumieniowe z serwerem, które umożliwia odbieranie wiadomości na czacie na żywo z określonego czatu z małym opóźnieniem. Jest to najskuteczniejszy sposób odbierania wiadomości na czacie na żywo, ponieważ nowe wiadomości są przesyłane do klienta od razu po ich udostępnieniu, a nie wymagają sprawdzania aktualizacji.

Po pierwszym połączeniu interfejs API wysyła serię wiadomości zawierających historię ostatnich czatów. Gdy pojawią się nowe wiadomości, serwer będzie je nadal wysyłać przez otwarte połączenie.

Wiadomości w każdej odpowiedzi serwera są uporządkowane od najstarszej do najnowszej. Każda odpowiedź zawiera też element nextPageToken. Jeśli klient się rozłączy, możesz użyć tego tokena, aby wznowić transmisję. Aby to zrobić, w nowym żądaniu połączenia podaj ostatni otrzymany znak nextPageToken jako wartość parametru pageToken. Interfejs API wznowi wysyłanie wiadomości od miejsca, w którym zostało przerwane.

Prezentacja

Przykładowy kod w Pythonie dla tego punktu końcowego znajdziesz w przewodniku Streaming Live Chat (w języku angielskim).

Żądanie

Parametry

W tabeli poniżej znajdziesz parametry obsługiwane przez to zapytanie. Wszystkie wymienione parametry to parametry zapytania.

Parametry
Parametry wymagane
liveChatId string
Parametr liveChatId określa identyfikator czatu, którego wiadomości zostaną zwrócone. Identyfikator czatu na żywo powiązanego z transmisją jest zwracany we właściwości snippet.liveChatId zasobu liveBroadcast.
part string
Parametr part określa części zasobu liveChatMessage, które będą uwzględnione w odpowiedzi interfejsu API. Obsługiwane wartości to id, snippetauthorDetails.
Parametry opcjonalne
hl string
Parametr hl nakazuje interfejsowi API pobranie zlokalizowanego ciągu znaków wyświetlania waluty dla określonego języka aplikacji obsługiwanego przez witrynę YouTube. Na przykład w języku angielskim waluta jest wyświetlana jako $1.50, a w języku francuskim jako 1,50$.

Wartość parametru musi być kodem języka znajdującym się na liście zwracanej przez metodę i18nLanguages.list.
maxResults unsigned integer

Parametr maxResults określa maksymalną liczbę wiadomości, które powinny zostać zwrócone w zestawie wyników. Akceptowane wartości to od 200 do 2000 włącznie. Wartością domyślną jest 500.

Pierwsze żądanie wysłane bez tokena kontynuacji będzie zawierać tylko najnowsze zdarzenia. Jeśli jest podana, może być mniejsza niż maxResults.

Interfejs API nie pobiera zdarzeń starszych niż te, które zostały zwrócone w pierwszym żądaniu wysłanym bez tokena kontynuacji.

pageToken string
Parametr pageToken identyfikuje konkretną stronę w zestawie wyników, która ma zostać zwrócona. W odpowiedzi interfejsu API właściwość nextPageToken identyfikuje inne strony, które można pobrać.
profileImageSize unsigned integer
Parametr profileImageSize określa rozmiar zdjęć profilowych użytkowników, które powinny zostać zwrócone w zestawie wyników. Obrazy są kwadratowe. Wartość domyślna to 88, co oznacza, że zdjęcia będą miały wymiary 88 x 88 pikseli. Akceptowane wartości należą do przedziału od 16 do 720 włącznie.

Treść żądania

Podczas wywoływania tej metody nie podawaj treści żądania.

Odpowiedź

Jeśli operacja się uda, metoda zwróci odpowiedź w poniższym formacie:

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

Właściwości

Poniższa tabela zawiera definicje właściwości, które pojawiają się w tym zasobie:

Właściwości
kind string
Określa typ zasobu interfejsu API. Wartość będzie wynosić youtube#liveChatMessageListResponse.
etag etag
Etag tego zasobu.
nextPageToken string
Token, którego można użyć jako wartości parametru pageToken, aby pobrać następną stronę w zbiorze wyników.
offlineAt datetime
Data i godzina przejścia transmisji na żywo w tryb offline. Ta właściwość jest obecna tylko wtedy, gdy strumień jest już offline. Wartość jest podana w formacie ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
pageInfo object
Obiekt pageInfo zawiera informacje o stronicowaniu zestawu wyników.
pageInfo.totalResults integer
Łączna liczba wyników w zbiorze wyników.
pageInfo.resultsPerPage integer
Liczba wyników uwzględnionych w odpowiedzi interfejsu API.
items[] list
Lista wiadomości. Każdy element na liście to zasób liveChatMessage.
activePollItem object
Dane ankiety w wiadomości. Każda ankieta to zasób liveChatMessage typu pollEvent, który reprezentuje aktywną ankietę. Na czacie może być tylko jedna ankieta.

Błędy

W tabeli poniżej znajdziesz komunikaty o błędach, które interfejs API może zwrócić w odpowiedzi na wywołanie tej metody. Więcej informacji znajdziesz w dokumentacji komunikatu o błędzie.

Podczas łączenia się za pomocą gRPC:

Kod błędu gRPC Szczegóły błędu Opis
PERMISSION_DENIED (7) The caller does not have permission Nie masz uprawnień wymaganych do pobierania wiadomości z określonego czatu na żywo.
INVALID_ARGUMENT (3) Request contains an invalid argument Nie udało się przeanalizować podanych parametrów. Upewnij się, że identyfikator liveChatId i inne parametry mają prawidłowy format.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_DISABLED. Określony czat na żywo jest wyłączony.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_ENDED. Nie możesz przywrócić wiadomości z zakończonego czatu na żywo.
NOT_FOUND (5) Requested entity was not found Nie można znaleźć czatu na żywo, który próbujesz odzyskać. Sprawdź wartość parametru liveChatId żądania, aby upewnić się, że jest prawidłowa.
RESOURCE_EXHAUSTED (8) Resource has been exhausted (e.g. check quota) Żądanie zostało wysłane zbyt szybko po poprzednim żądaniu. Ten błąd występuje, gdy żądania API dotyczące pobierania wiadomości są wysyłane częściej niż częstotliwość odświeżania YouTube, co niepotrzebnie marnuje przepustowość.

* Ze względu na ograniczenie gRPC nie można rozróżnić na podstawie kodu błędu między przypadkiem LIVE_CHAT_DISABLED a przypadkiem LIVE_CHAT_ENDED. YouTube aktywnie pracuje nad rozwiązaniem tego problemu.

Jeśli używasz ruchu w internecie do nawiązywania połączenia:

Typ błędu Szczegóły błędu Opis
HttpStatus.FORBIDDEN (403) forbidden Nie masz uprawnień wymaganych do pobierania wiadomości z określonego czatu na żywo.
HttpStatus.BAD_REQUEST (400) Reason for invalid request, e.g. pageTokenInvalid Nie udało się przeanalizować podanych parametrów. Upewnij się, że identyfikator liveChatId i inne parametry mają prawidłowy format.
HttpStatus.FORBIDDEN (403) liveChatDisabled LIVE_CHAT_DISABLED. Określony czat na żywo jest wyłączony.
HttpStatus.FORBIDDEN (403) liveChatEnded LIVE_CHAT_ENDED. Nie możesz przywrócić wiadomości z zakończonego czatu na żywo.
HttpStatus.NOT_FOUND (404) liveChatNotFound Nie można znaleźć czatu na żywo, który próbujesz odzyskać. Sprawdź wartość parametru liveChatId żądania, aby upewnić się, że jest prawidłowa.
HttpStatus.FORBIDDEN (403) rateLimitExceeded Żądanie zostało wysłane zbyt szybko po poprzednim żądaniu. Ten błąd występuje, gdy żądania API dotyczące pobierania wiadomości są wysyłane częściej niż częstotliwość odświeżania YouTube, co niepotrzebnie marnuje przepustowość.