LiveChatMessages

Ресурс liveChatMessage представляет сообщение в живом чате YouTube. Ресурс может содержать информацию о нескольких типах сообщений, включая недавно опубликованное текстовое сообщение или мероприятие, посвященное финансированию фанатов.

Функция живого чата включена по умолчанию для прямых трансляций и доступна, пока прямая трансляция активна. (После завершения мероприятия живой чат для этого мероприятия больше не доступен.)

Методы

API поддерживает следующие методы для ресурсов liveChatMessages :

list
Перечисляет сообщения живого чата для определенного чата. Попробуйте сейчас .
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 etag
Этаг этого ресурса.
id string
Идентификатор, который YouTube присваивает для уникальной идентификации сообщения.
snippet object
Объект snippet содержит основные сведения о сообщении чата.
snippet. type string
Тип сообщения. Это свойство присутствует всегда, и его значение определяет, какие поля присутствуют в ресурсе.

Допустимые значения для этого свойства:
  • chatEndedEvent — чат завершился, и после этого сообщения больше нельзя вставить. Это произойдет естественным образом через некоторое время после окончания трансляции. Сообщения этого типа не отправляются в чатах в трансляции канала по умолчанию.
  • messageDeletedEvent – ​​сообщение было удалено модератором. Поле author содержит данные модератора. Это событие не имеет отображаемого содержимого.
  • sponsorOnlyModeEndedEvent — чат больше не находится в режиме «только для спонсоров», что означает, что пользователи, не являющиеся спонсорами, теперь могут отправлять сообщения. Это событие не имеет отображаемого содержимого.
  • sponsorOnlyModeStartedEvent — чат перешел в режим только для спонсоров, что означает, что только спонсоры могут отправлять сообщения. Это событие не имеет отображаемого содержимого.
  • newSponsorEvent – ​​новый пользователь спонсировал канал, которому принадлежит чат. Поля author содержат информацию о новом спонсоре.
  • memberMilestoneChatEvent – ​​пользователь отправил чат участника Milestone .
  • superChatEvent — пользователь приобрел Суперчат.
  • superStickerEvent — пользователь приобрел суперстикер.
  • textMessageEvent – ​​пользователь отправил текстовое сообщение.
  • tombstone . Надгробие означает, что сообщение с этим идентификатором и временем публикации существовало раньше, но с тех пор оно было удалено. Он не отправляется при удалении сообщения, а скорее показывает, где сообщение находилось до удаления. В сообщении этого типа присутствуют только поля snippet.liveChatId , snippet.type и snippet.publishedAt .
  • userBannedEvent – ​​пользователь заблокирован модератором. Поле author содержит данные модератора.
  • membershipGiftingEvent — пользователь приобрел членство для других зрителей.
  • giftMembershipReceivedEvent — пользователь получил членство в подарок.
  • pollDetails – пользователь создал живой опрос.
snippet. liveChatId string
Идентификатор, который однозначно идентифицирует чат, с которым связано сообщение. Идентификатор живого чата, связанный с трансляцией, возвращается в свойстве snippet.liveChatId ресурса liveBroadcast .
snippet. authorChannelId string
Идентификатор пользователя, создавшего сообщение. Это поле заполняется только для следующих типов сообщений:
  • Если тип сообщения — textMessageEvent , значение свойства идентифицирует пользователя, написавшего сообщение.
  • Если тип сообщения — fanFundingEvent , значение свойства идентифицирует пользователя, который профинансировал трансляцию.
  • Если тип сообщения — messageDeletedEvent , значение свойства определяет модератора, который удалил сообщение.
  • Если тип сообщения — newSponsorEvent , значение свойства идентифицирует пользователя, который только что стал спонсором.
  • Если тип сообщения memberMilestoneChatEvent , значение свойства определяет участника, отправившего сообщение.
  • Если тип сообщения — userBannedEvent , значение свойства определяет модератора, заблокировавшего пользователя.
  • Если тип сообщения membershipGiftingEvent , значение свойства идентифицирует пользователя, совершившего подарочную покупку членства.
  • Если тип сообщения — giftMembershipReceivedEvent , значение свойства идентифицирует пользователя, получившего подарочное членство.
  • Если тип сообщения — pollEvent , значение свойства идентифицирует пользователя, создавшего живой опрос.
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 string
URL-адрес канала 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
Этот объект содержит подробную информацию о событии участника Milestone . Он присутствует только в том случае, если тип сообщения memberMilestoneChatEvent .
snippet.memberMilestoneChatDetails. userComment string
Комментарий, добавленный участником в этот чат участника Milestone. Это поле пусто для сообщений без комментариев участника.
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
Этот объект содержит сведения о событии Суперчата. Он присутствует только в том случае, если тип сообщения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 .

Уровень зависит от суммы денег, потраченной на покупку сообщения. Он также определяет цвет, используемый для выделения сообщения в пользовательском интерфейсе чата, максимальную длину сообщения и время, в течение которого сообщение закрепляется за тикером.

Уровни Суперчата описаны в Справочном центре YouTube . (Сведения о покупках в Суперчате см. в расширяемом разделе.) В этом списке уровень с наименьшей суммой покупки — это уровень 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
Статус живого опроса. Допустимые значения для этого свойства:
  • unknown
  • active
  • closed
snippet. membershipGiftingDetails object
Этот объект содержит сведения о событии дарения членства. Он присутствует только в том случае, если message type membershipGiftingEvent .
snippet.membershipGiftingDetails. giftMembershipsCount integer
Количество подарочных членств, приобретенных пользователем.
snippet.membershipGiftingDetails. giftMembershipsLevelName string
Название уровня подарочного членства, приобретенного пользователем. Названия уровней определяются каналом YouTube, предлагающим членство. В некоторых ситуациях это поле не заполняется.
snippet. giftMembershipReceivedDetails object
Этот объект содержит сведения о событии «Получено подарочное членство». Он присутствует только в том случае, если message typegiftMembershipReceivedEvent .
snippet.giftMembershipReceivedDetails. memberLevelName string
Имя уровня, участником которого является зритель. Это соответствует snippet.membershipGiftingDetails.giftMembershipsLevelName соответствующего сообщения о подарке членства. Названия уровней определяются каналом YouTube, предлагающим членство. В некоторых ситуациях это поле не заполняется.
snippet.giftMembershipReceivedDetails. gifterChannelId string
Идентификатор пользователя, совершившего подарочную покупку членства. Это соответствует snippet.authorChannelId соответствующего сообщения о подарке членства.
snippet.giftMembershipReceivedDetails. associatedMembershipGiftingMessageId string
Идентификатор сообщения о подарке членства, связанного с этим подарочным членством. membershipGiftingEvent type
authorDetails object
authorDetails содержит дополнительные сведения о пользователе, разместившем это сообщение.
authorDetails. channelId string
Идентификатор канала автора на YouTube.
authorDetails. channelUrl string
URL-адрес YouTube-канала автора.
authorDetails. displayName string
Отображаемое название канала автора на YouTube.
authorDetails. profileImageUrl string
URL аватара YouTube-канала автора.
authorDetails. isVerified boolean
Это значение указывает, была ли личность автора подтверждена YouTube.
authorDetails. isChatOwner boolean
Это значение указывает, является ли автор владельцем живого чата.
authorDetails. isChatSponsor boolean
Это значение указывает, является ли автор спонсором живого чата.
authorDetails. isChatModerator boolean
Это значение указывает, является ли автор модератором живого чата.