При первом подключении 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, что приводит к неоправданной трате полосы пропускания. |