LiveChatMessages: streamList

Ta metoda nawiązuje połączenie przesyłania strumieniowego z serwera, które umożliwia odbieranie wiadomości na czacie na żywo w określonym czacie z niskim opóźnieniem. Jest to najskuteczniejszy sposób na odbieranie wiadomości na czacie na żywo, ponieważ nowe wiadomości są przesyłane do klienta, gdy tylko są dostępne, zamiast wymagać odpytywania o aktualizacje.

Po pierwszym połączeniu interfejs API wysyła serię wiadomości zawierających najnowszą historię czatu. 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 najstarszych do najnowszych. Każda odpowiedź zawiera też nextPageToken. Jeśli klient się rozłączy, możesz użyć tego tokena, aby wznowić strumień. Aby to zrobić, w nowym żądaniu połączenia podaj ostatni otrzymany nextPageToken jako wartość parametru pageToken. Interfejs API wznowi wtedy wysyłanie wiadomości od miejsca, w którym przerwano.

Wpływ na limit: wywołanie tej metody ma koszt limitu wynoszący 5 jednostek.

Prezentacja

Prezentację tego punktu końcowego w Pythonie znajdziesz w przewodniku Przesyłanie strumieniowe czatu na żywo.

Żądanie

Parametry

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

Parametry
Parametry wymagane
liveChatId string
Parametr liveChatId określa identyfikator czatu, którego wiadomości mają zostać zwrócone. Identyfikator czatu na żywo powiązany 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, snippet i authorDetails.
Parametry opcjonalne
hl string
Parametr hl instruuje interfejs API, aby pobrał zlokalizowany ciąg znaków wyświetlający walutę w określonym języku aplikacji obsługiwanym przez witrynę YouTube. Na przykład w języku angielskim waluta będzie wyświetlana jako $1.50, ale w języku francuskim jako 1,50$.

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

Parametr maxResults określa maksymalną liczbę wiadomości, które mają zostać zwrócone w zbiorze wyników. Dopuszczalne wartości to od 200 do 2000 włącznie. Wartość domyślna to 500.

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

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 określa konkretną stronę w zbiorze 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 mają zostać zwrócone w zbiorze wyników. Obrazy są kwadratowe. Wartość domyślna to 88, co oznacza, że zdjęcia będą miały wymiary 88 x 88 pikseli. Dopuszczalne wartości mieszczą się w zakresie od 16 do 720 włącznie.

Treść żądania

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

Odpowiedź

Jeśli operacja się uda, ta metoda zwróci treść odpowiedzi o tej strukturze:

{
  "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

W tabeli poniżej znajdziesz właściwości, które pojawiają się w tym zasobie:

Właściwości
kind string
Określa typ zasobu interfejsu API. Wartość to 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, kiedy podstawowa transmisja na żywo przeszła 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 podziale na strony w zbiorze 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 jest zasobem liveChatMessage.
activePollItem object
Dane ankiety w wiadomości. Każda ankieta jest zasobem liveChatMessage o typie pollEvent, który reprezentuje aktywną ankietę. Na czacie może być 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 komunikatów o błędach.

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. Sprawdź, czy parametr 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 pobierać 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 pobrać. Sprawdź wartość parametru liveChatId w żądaniu, 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 do interfejsu API dotyczące pobierania wiadomości są wysyłane częściej niż częstotliwość odświeżania YouTube, co niepotrzebnie zużywa przepustowość.

* Ze względu na ograniczenie gRPC nie można odróżnić na podstawie kodu błędu przypadku LIVE_CHAT_DISABLED od przypadku LIVE_CHAT_ENDED. YouTube aktywnie pracuje nad rozwiązaniem tego problemu.

Podczas łączenia się za pomocą ruchu w witrynie:

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. Sprawdź, czy parametr 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 pobierać wiadomości z zakończonego czatu na żywo.
HttpStatus.NOT_FOUND (404) liveChatNotFound Nie można znaleźć czatu na żywo, który próbujesz pobrać. Sprawdź wartość parametru liveChatId w żądaniu, 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 do interfejsu API dotyczące pobierania wiadomości są wysyłane częściej niż częstotliwość odświeżania YouTube, co niepotrzebnie zużywa przepustowość.