Ресурс liveChatMessage представляет собой сообщение в чате трансляции на YouTube. Ресурс может содержать сведения о сообщениях нескольких типов, включая недавно опубликованные текстовые сообщения и события фан-фандинга.
Функция чата включена по умолчанию для прямых трансляций и доступна, пока трансляция активна. После окончания трансляции чат становится недоступен.
Методы
API поддерживает следующие методы для ресурсов liveChatMessages:
- list
- Возвращает список сообщений в определенном чате. Перейти
- streamList
- Включает подключение к серверу для потоковой передачи сообщений чата с низкой задержкой. Перейти
- insert
- Добавляет сообщение или опрос в чат. Перейти
- переход
- Изменяет статус сообщения в чате. Перейти
- 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
},
"giftDetails": {
"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 |
etagТег Etag этого ресурса. |
id |
stringИдентификатор, который YouTube присваивает сообщению. Примечание. Для giftEvents один и тот же идентификатор может использоваться повторно, чтобы обновить количество комбо. |
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.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Название уровня спонсорства зрителя. Названия уровней определяет автор канала. В некоторых случаях это поле не заполняется. |
snippet.newSponsorDetails |
objectЭтот объект содержит информацию о событии "Объявление о новом участнике". Задается, только если тип – newSponsorEvent. Спонсоры теперь называются участниками.
|
snippet.newSponsorDetails.memberLevelName |
stringНазвание уровня спонсорства. Названия уровней спонсорства задает автор канала. В некоторых случаях это поле не заполняется. |
snippet.newSponsorDetails.isUpgrade |
boolУказывает, перешел ли зритель на этот уровень с более низкого. Если зритель не был спонсором на момент покупки, в поле будет указано значение false.
|
snippet.superChatDetails |
objectЭтот объект содержит сведения о событии Суперчата. Присутствует, только если тип сообщения – 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.Уровень определяется суммой, потраченной на покупку сообщения. От нее также зависит цвет сообщения, его максимальная длина и время, в течение которого оно будет закреплено в чате. Подробнее о категориях сообщений в Суперчате… (См. раздел "О покупке сообщений в Суперчате".) В этом списке уровень с самой низкой суммой заказа – это уровень 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.Уровень определяется суммой, потраченной на покупку сообщения. Также от уровня зависит цвет, которым выделяется сообщение в чате, максимальная длина сообщения и время, в течение которого оно закреплено в тикерах. Уровни Суперчата, которые также распространяются на Суперстикеры, описаны в Справочном центре YouTube. (См. раздел "О покупке сообщений в Суперчате".) В этом списке уровень с наименьшей суммой заказа – это уровень 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Название уровня спонсорства в подарок, приобретенного пользователем. Названия уровней спонсорства задает автор канала. В некоторых случаях это поле не заполнено. |
snippet.giftMembershipReceivedDetails |
objectЭтот объект содержит информацию о событии "Получено спонсорство в подарок". Оно присутствует, только если для параметра message type задано значение giftMembershipReceivedEvent. |
snippet.giftMembershipReceivedDetails.memberLevelName |
stringНазвание уровня спонсорства. Это значение совпадает с snippet.membershipGiftingDetails.giftMembershipsLevelName связанного сообщения о спонсорстве в подарок. Названия уровней спонсорства задает автор канала. В некоторых случаях это поле не заполнено. |
snippet.giftMembershipReceivedDetails.gifterChannelId |
stringИдентификатор пользователя, который купил спонсорство в подарок. Это значение совпадает с snippet.authorChannelId связанного сообщения о спонсорстве в подарок. |
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId |
stringИдентификатор сообщения о спонсорстве в подарок, связанного с этим спонсорством. Этот идентификатор всегда будет относиться к сообщению, у которого type – membershipGiftingEvent. |
snippet.giftDetails |
objectЭтот объект содержит сведения о событии, связанном с подарком. Оно присутствует, только если для message type задано значение giftEvent. |
snippet.giftDetails.jewelsAmount |
integerКоличество самоцветов, потраченных на подарок. |
snippet.giftDetails.giftName |
stringНазвание подарка. |
snippet.giftDetails.giftUrl |
stringURL объекта подарка. |
snippet.giftDetails.giftDuration |
objectПродолжительность показа URL подарка. |
snippet.giftDetails.giftDuration.seconds |
integerКоличество секунд, в течение которых будет показываться URL подарка. |
snippet.giftDetails.giftDuration.nanos |
integerКоличество наносекунд, в течение которых будет показываться URL подарка. |
snippet.giftDetails.hasVisualEffect |
booleanЕсть ли у подарка визуальный эффект. |
snippet.giftDetails.comboCount |
integerКоличество подарков в комбо. Если это не комбо, указывается 0. |
snippet.giftDetails.altText |
stringТекстовая строка с описанием подарка. |
snippet.giftDetails.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Значение, указывающее, является ли автор модератором чата. |