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 | stringParametr liveChatIdokreśla identyfikator czatu, którego wiadomości zostaną zwrócone. Identyfikator czatu na żywo powiązanego z transmisją jest zwracany we właściwościsnippet.liveChatIdzasobuliveBroadcast. | |
| part | stringParametr partokreśla części zasobuliveChatMessage, które będą uwzględnione w odpowiedzi interfejsu API. Obsługiwane wartości toid,snippetiauthorDetails. | |
| Parametry opcjonalne | ||
| hl | stringParametr hlnakazuje 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 jako1,50$.Wartość parametru musi być kodem języka z listy zwracanej przez metodę i18nLanguages.list. | |
| maxResults | unsigned integerParametr maxResultsokreśla maksymalną liczbę wiadomości, które powinny zostać zwrócone w zestawie wyników. Akceptowane wartości to od200do2000włącznie. Wartością domyślną jest500. | |
| pageToken | stringParametr pageTokenidentyfikuje konkretną stronę w zestawie wyników, która powinna zostać zwrócona. W odpowiedzi interfejsu API właściwośćnextPageTokenidentyfikuje inne strony, które można pobrać. | |
| profileImageSize | unsigned integerParametr profileImageSizeokreśla rozmiar zdjęć profilowych użytkowników, które mają być zwracane w zestawie wyników. Obrazy są kwadratowe. Wartość domyślna to88, co oznacza, że zdjęcia będą miały wymiary 88 x 88 pikseli. Akceptowane wartości należą do przedziału od16do720(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 | stringOkreśla typ zasobu interfejsu API. Wartość będzie wynosić youtube#liveChatMessageListResponse. | 
| etag | etagTag ETag tego zasobu. | 
| nextPageToken | stringToken, którego można użyć jako wartości parametru pageToken, aby pobrać następną stronę w zbiorze wyników. | 
| offlineAt | datetimeData 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 | objectObiekt pageInfozawiera informacje o stronicowaniu zestawu wyników. | 
| pageInfo.totalResults | integerŁączna liczba wyników w zbiorze wyników. | 
| pageInfo.resultsPerPage | integerLiczba wyników uwzględnionych w odpowiedzi interfejsu API. | 
| items[] | listLista wiadomości. Każdy element na liście to zasób liveChatMessage. | 
| activePollItem | objectDane ankiety w wiadomości. Każda ankieta jest zasobem liveChatMessagetypupollEvent, 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ść. |