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 |
stringParametr 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 |
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 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 integerParametr Pierwsze żądanie wysłane bez tokena kontynuacji będzie zawierać tylko najnowsze zdarzenia. Jeśli zostanie podana wartość 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 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 integerParametr 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 |
stringOkreśla typ zasobu interfejsu API. Wartość to 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, 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 |
objectObiekt pageInfo zawiera informacje o podziale na strony w zbiorze 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 jest zasobem liveChatMessage. |
activePollItem |
objectDane 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ść. |