При первом подключении API отправляет серию сообщений, содержащих историю чата. Когда будут опубликованы новые сообщения, сервер продолжит отправлять их через открытое подключение.
Сообщения в каждом ответе сервера упорядочены от самых старых к самым новым. Каждый ответ также включает
nextPageToken. Если клиент отключится, вы сможете использовать этот токен, чтобы возобновить трансляцию. Для этого укажите последнее значение nextPageToken, полученное вами, в качестве значения параметра pageToken в новом запросе на подключение. После этого API возобновит отправку сообщений с того места, где вы остановились.
Влияние на квоту. Вызов этого метода имеет стоимость квоты в 5 единиц.
Демоверсии
Пример использования этой конечной точки на языке 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, то есть изображения будут размером 88 x 88 пикселей. Допустимые значения находятся в диапазоне от 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 (e.g. check quota) |
Запрос был отправлен слишком быстро после предыдущего. Эта ошибка возникает, когда запросы API на получение сообщений отправляются чаще, чем YouTube обновляет данные, что приводит к ненужной трате пропускной способности. |
* Из-за ограничений gRPC невозможно различить случаи LIVE_CHAT_DISABLED и LIVE_CHAT_ENDED по коду ошибки. Мы работаем над решением этой проблемы.
При использовании веб-трафика для подключения:
| Тип ошибки | Сведения об ошибке | Описание |
|---|---|---|
HttpStatus.FORBIDDEN (403) |
forbidden |
У вас нет разрешений, необходимых для получения сообщений из указанного чата. |
HttpStatus.BAD_REQUEST (400) |
Reason for invalid request, e.g. 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 обновляет данные, что приводит к ненужной трате пропускной способности. |