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 |
string Parametr 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 |
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 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 integer Parametr 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 |
string Parametr 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 integer Parametr 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 |
string Określa typ zasobu interfejsu API. Wartość będzie wynosić youtube#liveChatMessageListResponse . |
etag |
etag Tag 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 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 |
object Obiekt pageInfo zawiera informacje o stronicowaniu zestawu 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 to zasób liveChatMessage . |
activePollItem |
object Dane 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ść. |