Ресурс 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
},
"messageDeletedDetails": {
"deletedMessageId": 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
},
},
"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. messageDeletedDetails | objectЭтот объект содержит подробную информацию о сообщении, удалённом модератором чата или владельцем канала прямой трансляции. Он присутствует только в том случае, если тип сообщения — messageDeletedEvent . |
snippet.messageDeletedDetails. deletedMessageId | stringИдентификатор, однозначно идентифицирующий удаленное сообщение. Значение совпадает со значением свойства id исходного текстового сообщения. Например, если у объекта textMessageEvent значение свойства id равно 123 , и это сообщение впоследствии удаляется, значение snippet.messageDeletedDetails.deletedMessageId для этого сообщения будет равно 123 .Если вы кэшируете сообщения чата после их получения, используйте значение этого свойства, чтобы указать сообщение, которое больше не должно отображаться. |
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 . |
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Это значение указывает, является ли автор модератором онлайн-чата. |