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 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 z listy zwracanej przez metodę i18nLanguages.list. |
|
maxResults |
unsigned integerParametr 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 |
stringParametr 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 integerParametr 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 |
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 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 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ść. |