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 |
stringParametr 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 |
stringParametr 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 |
stringParametr 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 integerParametr Pierwsze żądanie wysłane bez tokena kontynuacji będzie zawierać tylko najnowsze zdarzenia. Jeśli jest podana, może być mniejsza niż Interfejs API nie pobiera zdarzeń starszych niż te, które zostały zwrócone w pierwszym żądaniu wysłanym bez tokena kontynuacji. |
|
pageToken |
stringParametr 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 integerParametr 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 |
stringOkreśla typ zasobu interfejsu API. Wartość będzie wynosić youtube#liveChatMessageListResponse. |
etag |
etagEtag 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 pageInfo zawiera 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 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ść. |