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

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

Не указывайте тело запроса при вызове этого метода.

Ответ

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

{
  "kind": "youtube#liveChatMessageListResponse",
  "etag": etag,
  "nextPageToken": string,
  "pollingIntervalMillis": unsigned 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, что приводит к неоправданной трате полосы пропускания.