Ресурс liveChatMessage представляет собой сообщение в чате прямой трансляции на YouTube. Ресурс может содержать подробную информацию о различных типах сообщений, включая недавно опубликованное текстовое сообщение или информацию о мероприятии по сбору средств от фанатов.
Функция онлайн-чата включена по умолчанию для прямых трансляций и доступна во время проведения мероприятия. (После завершения мероприятия онлайн-чат становится недоступен.)
Методы
API поддерживает следующие методы для ресурсов liveChatMessages :
- list
- Отображает список сообщений в чате. Попробуйте прямо сейчас .
- streamList
- Позволяет установить соединение с сервером для потоковой передачи сообщений в режиме реального времени для конкретного чата с низкой задержкой. Попробуйте прямо сейчас .
- insert
- Добавляет сообщение или опрос в онлайн-чат. Попробуйте прямо сейчас .
- transition
- Изменяет состояние активного сообщения. Попробуйте прямо сейчас .
- delete
- Удаляет сообщение в чате. Запрос к API должен быть авторизован владельцем канала или модератором чата. Попробуйте прямо сейчас .
Представление ресурсов
Следующая JSON-структура демонстрирует формат ресурса liveChatMessages :
{
"kind": "youtube#liveChatMessage",
"etag": etag,
"id": string,
"snippet": {
"type": string,
"liveChatId": string,
"authorChannelId": string,
"publishedAt": datetime,
"hasDisplayContent": boolean,
"displayMessage": string,
"fanFundingEventDetails": {
"amountMicros": unsigned long,
"currency": string,
"amountDisplayString": string,
"userComment": string
},
"textMessageDetails": {
"messageText": string
},
"userBannedDetails": {
"bannedUserDetails": {
"channelId": string,
"channelUrl": string,
"displayName": string,
"profileImageUrl": string
},
"banType": string,
"banDurationSeconds": unsigned long
},
"memberMilestoneChatDetails": {
"userComment": string,
"memberMonth": unsigned integer,
"memberLevelName": string
},
"newSponsorDetails": {
"memberLevelName": string,
"isUpgrade": bool
},
"superChatDetails": {
"amountMicros": unsigned long,
"currency": string,
"amountDisplayString": string,
"userComment": string,
"tier": unsigned integer
},
"superStickerDetails": {
"superStickerMetadata": {
"stickerId": string,
"altText": string,
"language": string
},
"amountMicros": unsigned long,
"currency": string,
"amountDisplayString": string,
"tier": unsigned integer
},
"pollDetails": {
"metadata": {
"options": {
"optionText": string,
"tally": string,
},
"questionText": string,
"status": enum
},
},
"membershipGiftingDetails": {
"giftMembershipsCount": integer,
"giftMembershipsLevelName": string
},
"giftMembershipReceivedDetails": {
"memberLevelName": string,
"gifterChannelId": string,
"associatedMembershipGiftingMessageId": string
},
"giftEventDetails": {
"giftMetadata": {
"jewelsAmount": integer,
"giftName": string,
"giftUrl": string,
"giftDuration": object,
"seconds": integer,
"nanos": integer,
"hasVisualEffect": boolean,
"comboCount": integer,
"altText": string,
"language": string
},
},
},
"authorDetails": {
"channelId": string,
"channelUrl": string,
"displayName": string,
"profileImageUrl": string,
"isVerified": boolean,
"isChatOwner": boolean,
"isChatSponsor": boolean,
"isChatModerator": boolean
},
}Характеристики
В следующей таблице описаны свойства, которые отображаются в этом ресурсе:
| Характеристики | |
|---|---|
kind | stringОпределяет тип ресурса API. Значение будет youtube#liveChatMessage . |
etag | etagEtag этого ресурса. |
id | stringИдентификатор, который YouTube присваивает для однозначной идентификации сообщения. Примечание: Для подарочных событий один и тот же идентификатор может быть использован повторно для обновления количества комбо-предложений. |
snippet | objectОбъект snippet содержит основные сведения о сообщении чата. |
snippet. type | stringТип сообщения. Это свойство всегда присутствует, и его значение определяет, какие поля будут присутствовать в ресурсе. Допустимые значения для этого свойства:
|
snippet. liveChatId | stringИдентификатор, однозначно определяющий чат, с которым связано сообщение. Идентификатор чата, связанного с трансляцией, возвращается в свойстве snippet.liveChatId ресурса liveBroadcast . |
snippet. authorChannelId | stringИдентификатор пользователя, создавшего сообщение. Это поле заполняется только для следующих типов сообщений:
|
snippet. publishedAt | datetimeДата и время первоначальной публикации сообщения. Значение указывается в формате ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). |
snippet. hasDisplayContent | booleanУказывает, содержит ли сообщение контент, который должен отображаться пользователям. |
snippet. displayMessage | stringСодержит строку, отображаемую пользователям. Это поле отсутствует, если тип сообщения — chatEndedEvent или tombstone . |
snippet. fanFundingEventDetails | objectПримечание: Этот объект и его дочерние свойства устарели. С 28 февраля 2017 года ресурсы liveChatMessage больше не будут возвращать подробную информацию о событиях Fan Funding.Этот объект содержит подробную информацию о событии финансирования. Он присутствует только в том случае, если тип сообщения — fanFundingEvent . |
snippet.fanFundingEventDetails. amountMicros | unsigned longПримечание: Данная функция устарела. Размер фонда. |
snippet.fanFundingEventDetails. currency | stringПримечание: Данная функция устарела. Валюта, в которой был создан фонд. |
snippet.fanFundingEventDetails. amountDisplayString | stringПримечание: Данная функция устарела. Отображаемая строка, которая показывает пользователю сумму средств и валюту. |
snippet.fanFundingEventDetails. userComment | stringПримечание: Данная функция устарела. Комментарий, добавленный пользователем к этому мероприятию по сбору средств от фанатов. |
snippet. textMessageDetails | objectЭтот объект содержит подробную информацию о текстовом сообщении. Он присутствует только в том случае, если тип сообщения — textMessageEvent . |
snippet.textMessageDetails. messageText | stringСообщение пользователя. |
snippet. userBannedDetails | objectЭтот объект содержит подробную информацию о пользователе, заблокированном в чате. Он также содержит информацию о самой блокировке. Пользователи могут быть заблокированы в чате навсегда или временно. |
snippet.userBannedDetails. bannedUserDetails | objectЭтот объект содержит информацию о заблокированном пользователе. |
snippet.userBannedDetails.bannedUserDetails. channelId | stringИдентификатор YouTube-канала заблокированного пользователя. |
snippet.userBannedDetails.bannedUserDetails. channelUrl | stringURL YouTube-канала заблокированного пользователя. |
snippet.userBannedDetails.bannedUserDetails. displayName | stringОтображаемое имя YouTube-канала заблокированного пользователя. |
snippet.userBannedDetails.bannedUserDetails. profileImageUrl | stringАватар YouTube-канала заблокированного пользователя. |
snippet.userBannedDetails. banType | stringТип запрета. Допустимые значения для этого свойства:
|
snippet.userBannedDetails. banDurationSeconds | unsigned longДлительность блокировки. Это свойство присутствует только в том случае, если значение свойства snippet.userBannedDetails.banType равно temporary . |
snippet. memberMilestoneChatDetails | objectЭтот объект содержит подробную информацию о событии "Важный этап в жизни участника" . Он присутствует только в том случае, если тип сообщения — memberMilestoneChatEvent . |
snippet.memberMilestoneChatDetails. userComment | stringКомментарий, добавленный участником в чат, посвященный достижениям участника. Это поле пустое для сообщений без комментария от участника. |
snippet.memberMilestoneChatDetails. memberMonth | unsigned integerОбщее количество месяцев (округленное в большую сторону), в течение которых зритель является участником, что позволило ему получить доступ к этому чату, посвященному достижению определенного этапа членства. Это то же количество месяцев, которое отображается пользователям YouTube. |
snippet.memberMilestoneChatDetails. memberLevelName | stringНазвание уровня, на котором находится зритель в качестве участника. Названия уровней определяются каналом YouTube, предлагающим данное членство. В некоторых случаях это поле не заполняется. |
snippet. newSponsorDetails | objectЭтот объект содержит подробную информацию о событии «Объявление о новом участнике». Он устанавливается только в том случае, если тип объекта — newSponsorEvent . «Участник» — это термин, обозначающий «спонсора». |
snippet.newSponsorDetails. memberLevelName | stringНазвание уровня, на котором находится зритель в качестве участника. Названия уровней определяются каналом YouTube, предлагающим данное членство. В некоторых случаях это поле не заполняется. |
snippet.newSponsorDetails. isUpgrade | boolУказывает, перешел ли пользователь на более низкий уровень подписки. Для пользователей, не являвшихся участниками на момент покупки, значение поля будет false . |
snippet. superChatDetails | objectЭтот объект содержит подробную информацию о событии Super Chat. Он присутствует только в том случае, если тип сообщения — superChatEvent . |
snippet.superChatDetails. amountMicros | unsigned longСумма покупки в микросекундах валюты покупки. Например, если сумма покупки составляет один доллар, значение свойства snippet.amountMicros будет равно 1000000 . |
snippet.superChatDetails. currency | stringВалюта, в которой была совершена покупка. Значение представлено в виде кода валюты ISO 4217 . |
snippet.superChatDetails. amountDisplayString | stringСтрока, например, $1.00 , содержащая сумму покупки и валюту. Эта строка предназначена для отображения пользователю. |
snippet.superChatDetails. userComment | stringКомментарий, добавленный пользователем к этому событию Super Chat. |
snippet.superChatDetails. tier | unsigned integerУровень платного сообщения. Обратите внимание, что в ресурсе superChatEvent это значение содержится в свойстве snippet.messageType .Уровень тарифа определяется суммой, потраченной на покупку сообщения. Он также определяет цвет, используемый для выделения сообщения в интерфейсе чата, максимальную длину сообщения и время, в течение которого сообщение будет закреплено в бегущей строке. Уровни Super Chat описаны в Справочном центре YouTube . (См. раскрывающийся раздел с подробной информацией о покупке Super Chat.) В этом списке уровень с наименьшей суммой покупки — это уровень 1, следующий по величине — уровень 2 и так далее. |
snippet. superStickerDetails | objectЭтот объект содержит подробную информацию о событии Super Sticker. Он присутствует только в том случае, если тип сообщения — superStickerEvent . |
snippet.superStickerDetails. superStickerMetadata | objectПодробности о супернаклейке. |
snippet.superStickerDetails.superStickerMetadata. stickerId | stringУникальный идентификатор, который определяет изображение стикера. Обратите внимание, что изображение отображается только как часть сообщения Super Sticker, когда пользователи просматривают окно чата на YouTube. Однако URL-адрес изображения недоступен через API. Для справки, вы можете найти, какие идентификаторы стикеров соответствуют каким Super Stickers, в этом CSV-файле . |
snippet.superStickerDetails.superStickerMetadata. altText | stringТекстовая строка, описывающая стикер. Поле snippet.superStickerDetails.superStickerMetadata.language определяет язык текста. При вызове метода liveChatMessages.list установите значение параметра hl равным выбранному языку текста. |
snippet.superStickerDetails.superStickerMetadata. language | stringЯзык значения свойства snippet.superStickerDetails.superStickerMetadata.altText . |
snippet.superStickerDetails. amountMicros | unsigned longСумма покупки в микросекундах валюты покупки. Например, если сумма покупки составляет один доллар, значение свойства snippet.amountMicros будет равно 1000000 . |
snippet.superStickerDetails. currency | stringВалюта, в которой была совершена покупка. Значение представлено в виде кода валюты ISO 4217 . |
snippet.superStickerDetails. amountDisplayString | stringСтрока, например, $1.00 , содержащая сумму покупки и валюту. Эта строка предназначена для отображения пользователю. |
snippet.superStickerDetails. tier | unsigned integerУровень платного сообщения. Обратите внимание, что в ресурсе superChatEvent это значение содержится в свойстве snippet.messageType .Уровень тарифа определяется суммой, потраченной на покупку сообщения. Он также определяет цвет, используемый для выделения сообщения в интерфейсе чата, максимальную длину сообщения и время, в течение которого сообщение будет закреплено в бегущей строке. Уровни Super Chat, включая Super Stickers, описаны в Справочном центре YouTube . (См. раскрывающийся раздел с подробной информацией о покупке Super Chat.) В этом списке уровень с наименьшей суммой покупки — это уровень 1, следующий по величине — уровень 2 и так далее. |
snippet. pollDetails | objectЭтот объект содержит подробную информацию о событии опроса. Он присутствует только в том случае, если тип сообщения — pollEvent . |
snippet.pollDetails. metadata | objectПодробности о мероприятии по проведению опроса. |
snippet.pollDetails.metadata. options | objectВарианты ответов в онлайн-опросе. |
snippet.pollDetails.metadata.options. optionText | stringТекст варианта ответа в онлайн-опросе. |
snippet.pollDetails.metadata.options. tally | stringРезультаты опроса в реальном времени. Подсчет голосов отображается только в том случае, если запрос к API авторизован владельцем канала. |
snippet.pollDetails.metadata. questionText | stringТекст вопроса, заданного в ходе опроса в прямом эфире. |
snippet.pollDetails.metadata. status | enumСтатус текущего опроса. Допустимые значения для этого свойства:
|
snippet. membershipGiftingDetails | objectЭтот объект содержит подробную информацию о событии «Дарение членства». Он присутствует только в том случае, если message type — membershipGiftingEvent . |
snippet.membershipGiftingDetails. giftMembershipsCount | integerКоличество подарочных абонементов, приобретенных пользователем. |
snippet.membershipGiftingDetails. giftMembershipsLevelName | stringНазвание уровня подарочной подписки, приобретенной пользователем. Названия уровней определяются каналом YouTube, предлагающим подписку. В некоторых случаях это поле не заполняется. |
snippet. giftMembershipReceivedDetails | objectЭтот объект содержит подробную информацию о событии «Получено подарочное членство». Он присутствует только в том случае, если message type — giftMembershipReceivedEvent . |
snippet.giftMembershipReceivedDetails. memberLevelName | stringНазвание уровня, на котором находится зритель в качестве участника. Это соответствует фрагменту snippet.membershipGiftingDetails.giftMembershipsLevelName соответствующего сообщения о дарении членства. Названия уровней определяются каналом YouTube, предлагающим членство. В некоторых случаях это поле не заполняется. |
snippet.giftMembershipReceivedDetails. gifterChannelId | stringИдентификатор пользователя, совершившего покупку подарочного членства. Он соответствует snippet.authorChannelId соответствующего сообщения о подарочном членстве. |
snippet.giftMembershipReceivedDetails. associatedMembershipGiftingMessageId | stringИдентификатор сообщения о дарении членства, связанного с этим подарочным членством. Этот идентификатор всегда будет указывать на сообщение type membershipGiftingEvent . |
snippet. giftEventDetails | objectЭтот объект содержит подробную информацию о событии, связанном с подарком. Он присутствует только в том случае, если message type — giftEvent . |
snippet.giftEventDetails. giftMetadata | objectПодробности о благотворительной акции. |
snippet.giftEventDetails.giftMetadata. jewelsAmount | integerКоличество драгоценных камней, обменянных на подарок. |
snippet.giftEventDetails.giftMetadata. giftName | stringНазвание подарка. |
snippet.giftEventDetails.giftMetadata. giftUrl | stringURL-адрес подарочного актива. |
snippet.giftEventDetails.giftMetadata. giftDuration | objectВремя отображения URL-адреса подарка. |
snippet.giftEventDetails.giftMetadata.giftDuration. seconds | integerКоличество секунд, необходимое для отображения URL-адреса подарка. |
snippet.giftEventDetails.giftMetadata.giftDuration. nanos | integerКоличество наносекунд, необходимое для отображения URL-адреса подарка. |
snippet.giftEventDetails.giftMetadata. hasVisualEffect | booleanОбладает ли подарок визуальным эффектом. |
snippet.giftEventDetails.giftMetadata. comboCount | integerКоличество комбинаций в подарке; 0, если это не комбинация. |
snippet.giftEventDetails.giftMetadata. altText | stringТекстовая строка, описывающая подарок. |
snippet.giftEventDetails.giftMetadata. language | stringЯзык значения свойства altText . |
authorDetails | objectОбъект authorDetails содержит дополнительные сведения о пользователе, отправившем это сообщение. |
authorDetails. channelId | stringИдентификатор YouTube-канала автора. |
authorDetails. channelUrl | stringURL-адрес YouTube-канала автора. |
authorDetails. displayName | stringОтображаемое название YouTube-канала автора. |
authorDetails. profileImageUrl | stringURL-адрес аватара YouTube-канала автора. |
authorDetails. isVerified | booleanЭто значение указывает, была ли личность автора подтверждена YouTube. |
authorDetails. isChatOwner | booleanЭто значение указывает, является ли автор владельцем онлайн-чата. |
authorDetails. isChatSponsor | booleanЭто значение указывает, является ли автор спонсором онлайн-чата. |
authorDetails. isChatModerator | booleanЭто значение указывает, является ли автор модератором онлайн-чата. |