При первом подключении 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 Параметр Первоначальный запрос, отправленный без токена продолжения, будет содержать только самые последние события. Если токен предоставлен, его размер может быть меньше значения 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 | etagEtag этого ресурса. |
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, что приводит к неоправданному расходу полосы пропускания. |