Ресурс 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 больше не будут возвращать информацию о мероприятиях по сбору средств от поклонников.Этот объект содержит информацию о мероприятии по сбору средств. Он присутствует только в том случае, если тип сообщения — 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Этот объект содержит сведения о событии Member Milestone . Он присутствует только в том случае, если тип сообщения — memberMilestoneChatEvent . |
snippet.memberMilestoneChatDetails. userComment | stringКомментарий, добавленный участником к этому чату Milestone Chat. Это поле пусто для сообщений без комментария от участника. |
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Комментарий, добавленный пользователем к этому событию Суперчата. |
snippet.superChatDetails. tier | unsigned integerУровень платного сообщения. Обратите внимание, что в ресурсе superChatEvent свойство snippet.messageType содержит это значение.Уровень зависит от суммы, потраченной на покупку сообщения. Он также определяет цвет, используемый для выделения сообщения в интерфейсе онлайн-чата, максимальную длину сообщения и время, в течение которого сообщение будет закреплено в тикере. Уровни Super Chat описаны в Справочном центре YouTube . (См. расширенный раздел с подробностями покупки Super Chat.) В этом списке уровень с наименьшей суммой покупки — это уровень 1, следующая наименьшая сумма — это уровень 2 и т. д. |
snippet. superStickerDetails | objectЭтот объект содержит информацию о событии «Суперстикер». Он присутствует только для сообщения типа superStickerEvent . |
snippet.superStickerDetails. superStickerMetadata | objectПодробная информация о Супер Наклейке. |
snippet.superStickerDetails.superStickerMetadata. stickerId | stringУникальный идентификатор, идентифицирующий изображение стикера. Обратите внимание, что изображение отображается только как часть сообщения суперстикера, когда пользователи просматривают окно чата на YouTube. Однако URL-адрес изображения недоступен через API. Только для справки: в этом 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Это значение указывает, является ли автор модератором чата. |