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 po wysłaniu przez Ciebie zapytania o aktualizacje.

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 wysyłać przez otwarte połączenie.

Wiadomości w każdej odpowiedzi serwera są uporządkowane od najstarszych do najnowszych. 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 z listy 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.
pageToken string
Parametr pageToken identyfikuje konkretną stronę w zestawie wyników, która powinna 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 mają być zwracane 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 (obustronnie domkniętego).

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": unsigned 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
Tag 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 jest zasobem liveChatMessage typu pollEvent, który reprezentuje aktywną ankietę. Na czat może przypadać tylko 1 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.

Jeśli używasz gRPC do łączenia się:

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łączeń:

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ść.