LiveChatMessages: streamList

Этот метод устанавливает соединение между сервером и потоком данных, позволяя получать сообщения чата в режиме реального времени с низкой задержкой. Это наиболее эффективный способ получения сообщений чата в режиме реального времени, поскольку новые сообщения отправляются вашему клиенту сразу же после их появления, вместо того чтобы запрашивать обновления вручную.

При первом подключении API отправляет серию сообщений, содержащих историю последних чатов. По мере отправки новых сообщений сервер будет продолжать отправлять их через открытое соединение.

Сообщения в каждом ответе сервера упорядочены от самых старых к самым новым. Каждый ответ также содержит nextPageToken . Если ваш клиент отключится, вы можете использовать этот токен для возобновления потока. Для этого укажите последний полученный nextPageToken в качестве значения параметра pageToken в вашем новом запросе на подключение. После этого API возобновит отправку сообщений с того места, где вы остановились.

Демо

Демонстрацию работы этой конечной точки на Python см. в руководстве по потоковой передаче чата в реальном времени .

Запрос

Параметры

В таблице ниже перечислены параметры, поддерживаемые этим запросом. Все перечисленные параметры являются параметрами запроса.

Параметры
Необходимые параметры
liveChatId string
Параметр liveChatId указывает идентификатор чата, сообщения которого будут возвращены. Идентификатор чата, связанного с трансляцией, возвращается в свойстве snippet.liveChatId ресурса liveBroadcast .
part string
Параметр part указывает части ресурса liveChatMessage , которые будут включены в ответ API. Поддерживаемые значения: id , snippet и authorDetails .
Дополнительные параметры
hl string
Параметр hl указывает API получить локализованную строку отображения валюты для конкретного языка приложения, который поддерживает веб-сайт YouTube . Например, на английском языке валюта будет отображаться как $1.50 , а на французском — как 1,50$ .

Значение параметра должно представлять собой код языка, включенный в список, возвращаемый методом i18nLanguages.list .
maxResults unsigned integer

Параметр maxResults задает максимальное количество сообщений, которые должны быть возвращены в результирующем наборе. Допустимые значения — от 200 до 2000 включительно. Значение по умолчанию — 500 .

Первоначальный запрос, отправленный без токена продолжения, будет содержать только самые последние события. Если токен предоставлен, его размер может быть меньше значения maxResults .

API не извлекает события, которые старше тех, что были возвращены при первоначальном запросе, сделанном без токена продолжения.

pageToken string
Параметр pageToken указывает конкретную страницу в наборе результатов, которая должна быть возвращена. В ответе API свойство nextPageToken указывает другие страницы, которые могут быть получены.
profileImageSize unsigned integer
Параметр profileImageSize задает размер изображений профиля пользователя , которые должны быть возвращены в результирующем наборе. Изображения квадратные. Значение по умолчанию — 88 , что означает, что изображения будут размером 88x88 пикселей. Допустимые значения находятся в диапазоне 16 до 720 включительно.

Текст запроса

При вызове этого метода не следует передавать тело запроса.

Ответ

В случае успеха этот метод возвращает тело ответа со следующей структурой:

{
  "kind": "youtube#liveChatMessageListResponse",
  "etag": etag,
  "nextPageToken": string,
  "pollingIntervalMillis": unsigne{d integer,
  "offlineAt": datetime,
  "pageInfo}": 
    "totalResults": integer,
    "resultsPerPage": integer
  ,
  }"items": [
    liveChatMessage Resource
  ],
  "activePollItem": liveChatMessage Resource

Характеристики

В следующей таблице описаны свойства, которые отображаются в этом ресурсе:

Характеристики
kind string
Определяет тип ресурса API. Значение будет youtube#liveChatMessageListResponse .
etag etag
Etag этого ресурса.
nextPageToken string
Токен, который можно использовать в качестве значения параметра pageToken для получения следующей страницы в результирующем наборе.
offlineAt datetime
Дата и время отключения прямой трансляции. Это свойство присутствует только в том случае, если трансляция уже отключена. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ).
pageInfo object
Объект pageInfo содержит информацию о постраничной навигации для результирующего набора данных.
pageInfo. totalResults integer
Общее количество результатов в результирующем наборе.
pageInfo. resultsPerPage integer
Количество результатов, включенных в ответ API.
items[] list
Список сообщений. Каждый элемент в списке представляет собой ресурс liveChatMessage .
activePollItem object
Данные опроса находятся в сообщении. Каждый опрос представляет собой ресурс liveChatMessage типа pollEvent , который обозначает активный опрос. В одном чате может быть только один опрос.

Ошибки

В таблице ниже приведены сообщения об ошибках, которые API может вернуть в ответ на вызов этого метода. Более подробную информацию см. в документации по сообщениям об ошибках .

При использовании gRPC для подключения:

Код ошибки gRPC Подробности ошибки Описание
PERMISSION_DENIED (7) The caller does not have permission У вас нет необходимых прав для получения сообщений из указанного онлайн-чата.
INVALID_ARGUMENT (3) Request contains an invalid argument Не удалось обработать предоставленные параметры. Убедитесь, что liveChatId и другие параметры имеют правильный формат.
FAILED_PRECONDITION (9) * Precondition check failed LIVE_CHAT_DISABLED. Указанный онлайн-чат отключен.
FAILED_PRECONDITION (9) * Precondition check failed LIVE_CHAT_ENDED. Вы не можете просмотреть сообщения из завершившегося онлайн-чата.
NOT_FOUND (5) Requested entity was not found Не удалось найти нужный вам чат в режиме реального времени. Проверьте правильность значения параметра liveChatId в запросе.
RESOURCE_EXHAUSTED (8) Resource has been exhausted (eg check quota) Запрос был отправлен слишком быстро после предыдущего запроса. Эта ошибка возникает, когда запросы к API для получения сообщений отправляются чаще, чем частота обновления YouTube, что приводит к неоправданному расходу полосы пропускания.

* Из-за ограничений gRPC невозможно различить случаи LIVE_CHAT_DISABLED и LIVE_CHAT_ENDED по коду ошибки. YouTube активно работает над решением этой проблемы.

При использовании веб-трафика для подключения:

Тип ошибки Подробности ошибки Описание
HttpStatus.FORBIDDEN (403) forbidden У вас нет необходимых прав для получения сообщений из указанного онлайн-чата.
HttpStatus.BAD_REQUEST (400) Reason for invalid request, eg pageTokenInvalid Не удалось обработать предоставленные параметры. Убедитесь, что liveChatId и другие параметры имеют правильный формат.
HttpStatus.FORBIDDEN (403) liveChatDisabled LIVE_CHAT_DISABLED. Указанный онлайн-чат отключен.
HttpStatus.FORBIDDEN (403) liveChatEnded LIVE_CHAT_ENDED. Вы не можете просмотреть сообщения из завершившегося онлайн-чата.
HttpStatus.NOT_FOUND (404) liveChatNotFound Не удалось найти нужный вам чат в режиме реального времени. Проверьте правильность значения параметра liveChatId в запросе.
HttpStatus.FORBIDDEN (403) rateLimitExceeded Запрос был отправлен слишком быстро после предыдущего запроса. Эта ошибка возникает, когда запросы к API для получения сообщений отправляются чаще, чем частота обновления YouTube, что приводит к неоправданному расходу полосы пропускания.