LiveChatMessages

Zasób liveChatMessage reprezentuje wiadomość na czacie na żywo w YouTube. Zasób może zawierać szczegółowe informacje o kilku typach wiadomości, w tym o nowo opublikowanej wiadomości tekstowej lub wydarzeniu związanym z finansowaniem przez fanów.

Funkcja czatu na żywo jest domyślnie włączona w przypadku transmisji na żywo i jest dostępna, gdy wydarzenie na żywo jest aktywne. (Po zakończeniu wydarzenia czat na żywo nie jest już dostępny).

Metody

Interfejs API obsługuje te metody dla zasobów liveChatMessages:

list
Wyświetla wiadomości na czacie na żywo dla konkretnego czatu. Wypróbuj teraz
streamList
Włącza połączenie strumieniowe z serwerem, aby odbierać wiadomości na czacie na żywo w przypadku konkretnego czatu z niskim opóźnieniem. Wypróbuj teraz
insert
Dodaje wiadomość lub ankietę na czacie na żywo. Wypróbuj teraz
transition
Zmienia stan wiadomości na żywo. Wypróbuj teraz
usuń
Usuwa wiadomość na czacie. Żądanie do interfejsu API musi być autoryzowane przez właściciela kanału lub moderatora czatu na żywo. Wypróbuj teraz

Prezentacja zasobów

Poniższa struktura JSON przedstawia format zasobu 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
  },
}

Właściwości

W tabeli poniżej opisano właściwości, które występują w tym zasobie:

Właściwości
kind string
Określa typ zasobu interfejsu API. Wartość będzie wynosić youtube#liveChatMessage.
etag etag
Etag tego zasobu.
id string
Identyfikator, który YouTube przypisuje do jednoznacznej identyfikacji wiadomości.
Uwaga: w przypadku giftEvents ten sam identyfikator może być używany ponownie do aktualizowania liczby kombinacji.
snippet object
Obiekt snippet zawiera podstawowe informacje o wiadomości na czacie.
snippet.type string
Typ wiadomości. Ta właściwość jest zawsze obecna, a jej wartość określa, które pola są obecne w zasobie.

Prawidłowe wartości tej właściwości to:
  • chatEndedEvent – czat został zakończony i nie można już wstawiać żadnych wiadomości. Nastąpi to automatycznie po zakończeniu transmisji. Tego typu wiadomości nie są wysyłane w przypadku czatów na żywo podczas domyślnej transmisji na kanale.
  • sponsorOnlyModeEndedEvent – czat nie jest już w trybie tylko dla sponsorów, co oznacza, że użytkownicy, którzy nie są sponsorami, mogą teraz wysyłać wiadomości. To wydarzenie nie zawiera żadnych treści do wyświetlenia.
  • sponsorOnlyModeStartedEvent – czat został przełączony w tryb tylko dla wspierających, co oznacza, że tylko wspierający mogą wysyłać wiadomości. To wydarzenie nie ma treści do wyświetlenia.
  • newSponsorEvent – nowy użytkownik zasponsorował kanał, do którego należy czat na żywo. Pola author zawierają nowe dane sponsora.
  • memberMilestoneChatEvent – użytkownik wysłał wiadomość na czacie dla wspierających osiągających kolejny próg.
  • superChatEvent – użytkownik kupił superczat.
  • superStickerEvent – użytkownik kupił supernaklejkę.
  • textMessageEvent – użytkownik wysłał SMS-a.
  • tombstone – nagrobek oznacza, że wiadomość o tym identyfikatorze i czasie publikacji istniała, ale została usunięta. Nie jest wysyłany po usunięciu wiadomości, ale jest wyświetlany, aby wskazać, gdzie znajdowała się wiadomość przed usunięciem. Ten typ wiadomości zawiera tylko pola snippet.liveChatId, snippet.type i snippet.publishedAt.
  • userBannedEvent – użytkownik został zbanowany przez moderatora. Pole author zawiera dane moderatora.
  • membershipGiftingEvent – użytkownik kupił wspieranie dla innych widzów.
  • giftMembershipReceivedEvent – użytkownik otrzymał wspieranie kanału w prezencie.
  • pollDetails – użytkownik utworzył ankietę na żywo.
  • giftEvent – użytkownik wykorzystał diamenty na prezent.
snippet.liveChatId string
Identyfikator, który jednoznacznie identyfikuje czat na żywo, z którym powiązana jest wiadomość. Identyfikator czatu na żywo powiązany z transmisją jest zwracany we właściwości snippet.liveChatId zasobu liveBroadcast.
snippet.authorChannelId string
Identyfikator użytkownika, który napisał wiadomość. To pole jest wypełniane tylko w przypadku tych typów wiadomości:
  • Jeśli typ wiadomości to textMessageEvent, wartość właściwości identyfikuje użytkownika, który napisał wiadomość.
  • Jeśli typ wiadomości to fanFundingEvent, wartość właściwości identyfikuje użytkownika, który sfinansował transmisję.
  • Jeśli typ wiadomości to newSponsorEvent, wartość właściwości identyfikuje użytkownika, który właśnie został sponsorem.
  • Jeśli typ wiadomości to memberMilestoneChatEvent, wartość właściwości określa członka, który wysłał wiadomość.
  • Jeśli typ wiadomości to userBannedEvent, wartość właściwości identyfikuje moderatora, który zablokował użytkownika.
  • Jeśli typ wiadomości to membershipGiftingEvent, wartość właściwości identyfikuje użytkownika, który kupił podarowanie subskrypcji wspieranego kanału.
  • Jeśli typ wiadomości to giftMembershipReceivedEvent, wartość właściwości identyfikuje użytkownika, który otrzymał wspieranie kanału w prezencie.
  • Jeśli typ wiadomości to pollEvent, wartość właściwości identyfikuje użytkownika, który utworzył ankietę na żywo.
  • Jeśli typ wiadomości to giftEvent, wartość właściwości identyfikuje użytkownika, który wysłał prezent.
snippet.publishedAt datetime
Data i godzina pierwotnego opublikowania wiadomości. Wartość jest podana w formacie ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.hasDisplayContent boolean
Wskazuje, czy wiadomość zawiera treści do wyświetlenia użytkownikom.
snippet.displayMessage string
Zawiera ciąg znaków wyświetlany użytkownikom. To pole nie występuje, jeśli typ wiadomości to chatEndedEvent lub tombstone.
snippet.fanFundingEventDetails object
Uwaga: ten obiekt i jego właściwości podrzędne zostały wycofane. Od 28 lutego 2017 r. zasoby liveChatMessage nie będą już zwracać szczegółów dotyczących wydarzeń związanych z finansowaniem przez fanów.

Ten obiekt zawiera szczegóły dotyczące wydarzenia związanego z finansowaniem. Występuje tylko wtedy, gdy typ wiadomości to fanFundingEvent.
snippet.fanFundingEventDetails.amountMicros unsigned long
Uwaga: ta właściwość została wycofana.

Wartość funduszu.
snippet.fanFundingEventDetails.currency string
Uwaga: ta właściwość została wycofana.

Waluta, w której dokonano wpłaty.
snippet.fanFundingEventDetails.amountDisplayString string
Uwaga: ta właściwość została wycofana.

Wyrenderowany ciąg znaków, który wyświetla użytkownikowi kwotę i walutę.
snippet.fanFundingEventDetails.userComment string
Uwaga: ta właściwość została wycofana.

Komentarz dodany przez użytkownika do tego zdarzenia finansowania przez fanów.
snippet.textMessageDetails object
Ten obiekt zawiera szczegółowe informacje o SMS-ie. Jest on obecny tylko wtedy, gdy typ wiadomości to textMessageEvent.
snippet.textMessageDetails.messageText string
Wiadomość użytkownika.
snippet.userBannedDetails object
Ten obiekt zawiera informacje o użytkowniku, który został zablokowany na czacie. Zawiera on też szczegółowe informacje o samym zakazie. Użytkownicy mogą zostać zablokowani na czacie na stałe lub tymczasowo.
snippet.userBannedDetails.bannedUserDetails object
Ten obiekt zawiera informacje o zablokowanym użytkowniku.
snippet.userBannedDetails.bannedUserDetails.channelId string
Identyfikator kanału YouTube zablokowanego użytkownika.
snippet.userBannedDetails.bannedUserDetails.channelUrl string
Adres URL kanału YouTube zablokowanego użytkownika.
snippet.userBannedDetails.bannedUserDetails.displayName string
Wyświetlana nazwa kanału YouTube zablokowanego użytkownika.
snippet.userBannedDetails.bannedUserDetails.profileImageUrl string
Awatar kanału YouTube zbanowanego użytkownika.
snippet.userBannedDetails.banType string
Rodzaj blokady. Prawidłowe wartości tego atrybutu to:
  • nie można zmienić
  • tymczasowy,
snippet.userBannedDetails.banDurationSeconds unsigned long
Czas trwania blokady. Ta właściwość jest obecna tylko wtedy, gdy wartość właściwości snippet.userBannedDetails.banType to temporary.
snippet.memberMilestoneChatDetails object
Ten obiekt zawiera szczegółowe informacje o zdarzeniu związanym z osiągnięciem przez wspierającego. Jest on obecny tylko wtedy, gdy typ wiadomości to memberMilestoneChatEvent.
snippet.memberMilestoneChatDetails.userComment string
Komentarz dodany przez wspierającego do tej wiadomości na czacie dla wspierających osiągających kolejny próg. To pole jest puste w przypadku wiadomości bez komentarza od członka.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
Łączna liczba miesięcy (zaokrąglona w górę), przez które widz wspierał kanał, co pozwoliło mu wysłać wiadomość na czacie dla wspierających osiągających kolejny próg. Jest to taka sama liczba miesięcy, jaka jest wyświetlana użytkownikom YouTube.
snippet.memberMilestoneChatDetails.memberLevelName string
Nazwa poziomu, na którym widz jest wspierającym. Nazwy poziomów są określane przez kanał w YouTube, który oferuje wspieranie. W niektórych sytuacjach to pole nie jest wypełnione.
snippet.newSponsorDetails object
Ten obiekt zawiera szczegółowe informacje o zdarzeniu New Member Announcement. Jest to ustawiane tylko wtedy, gdy typ to newSponsorEvent. „Wspierający” to określenie „sponsora”.
snippet.newSponsorDetails.memberLevelName string
Nazwa poziomu, na którym widz jest wspierającym. Nazwy poziomów są określane przez kanał YouTube oferujący wspieranie. W niektórych sytuacjach to pole nie jest wypełnione.
snippet.newSponsorDetails.isUpgrade bool
Wskazuje, czy widz właśnie przeszedł na wyższy poziom. W przypadku widzów, którzy nie wspierali kanału w momencie zakupu, wartość pola to false.
snippet.superChatDetails object
Ten obiekt zawiera szczegóły dotyczące superczatu. Jest on obecny tylko wtedy, gdy typ wiadomości to superChatEvent.
snippet.superChatDetails.amountMicros unsigned long
Kwota płatności w mikrowartościach waluty zakupu. Jeśli na przykład kwota zakupu wynosi 1 zł, wartość właściwości snippet.amountMicros to 1000000.
snippet.superChatDetails.currency string
Waluta, w której dokonano zakupu. Wartość to kod waluty w formacie ISO 4217.
snippet.superChatDetails.amountDisplayString string
Ciąg znaków, np. $1.00, który zawiera kwotę płatności i walutę. Ciąg znaków jest przeznaczony do wyświetlania użytkownikowi.
snippet.superChatDetails.userComment string
Komentarz dodany przez użytkownika do tego superczatu.
snippet.superChatDetails.tier unsigned integer
Poziom płatnej wiadomości. Pamiętaj, że w zasobie superChatEvent ta wartość jest zawarta we właściwości snippet.messageType.

Poziom jest określany na podstawie kwoty wydanej na zakup wiadomości. Określa też kolor, który zostanie użyty do wyróżnienia wiadomości w interfejsie czatu na żywo, maksymalną długość wiadomości oraz czas, przez jaki wiadomość będzie przypięta do paska.

Poziomy superczatu są opisane w Centrum pomocy YouTube. (Zobacz sekcję dotyczącą szczegółów zakupu superczatu). Na tej liście poziom z najniższą kwotą płatności to poziom 1, kolejny poziom z najniższą kwotą to poziom 2 itd.
snippet.superStickerDetails object
Ten obiekt zawiera szczegóły dotyczące zdarzenia związanego z supernaklejką. Występuje tylko wtedy, gdy typ wiadomości to superStickerEvent.
snippet.superStickerDetails.superStickerMetadata object
Szczegóły dotyczące supernaklejki.
snippet.superStickerDetails.superStickerMetadata.stickerId string
Unikalny identyfikator obrazu naklejki. Pamiętaj, że obraz jest wyświetlany jako część wiadomości z supernaklejką tylko wtedy, gdy użytkownicy wyświetlają okno czatu na YouTube. Adres URL obrazu nie jest jednak dostępny w interfejsie API. W tym pliku CSV znajdziesz informacje o tym, które identyfikatory naklejek odpowiadają poszczególnym supernaklejkom.
snippet.superStickerDetails.superStickerMetadata.altText string
Ciąg tekstowy opisujący naklejkę. Pole snippet.superStickerDetails.superStickerMetadata.language określa język tekstu. Podczas wywoływania metody liveChatMessages.list ustaw wartość parametru hl na wybrany język tekstu.
snippet.superStickerDetails.superStickerMetadata.language string
Język wartości właściwości snippet.superStickerDetails.superStickerMetadata.altText.
snippet.superStickerDetails.amountMicros unsigned long
Kwota płatności w mikrowartościach waluty zakupu. Jeśli na przykład kwota zakupu wynosi 1 zł, wartość właściwości snippet.amountMicros to 1000000.
snippet.superStickerDetails.currency string
Waluta, w której dokonano zakupu. Wartość to kod waluty w formacie ISO 4217.
snippet.superStickerDetails.amountDisplayString string
Ciąg znaków, np. $1.00, który zawiera kwotę płatności i walutę. Ciąg znaków jest przeznaczony do wyświetlania użytkownikowi.
snippet.superStickerDetails.tier unsigned integer
Poziom płatnej wiadomości. Pamiętaj, że w zasobie superChatEvent właściwość snippet.messageType zawiera tę wartość.

Poziom zależy od kwoty wydanej na zakup wiadomości. Określa też kolor, który zostanie użyty do wyróżnienia wiadomości w interfejsie czatu na żywo, maksymalną długość wiadomości oraz czas, przez jaki wiadomość będzie przypięta do paska.

Poziomy superczatu, które obejmują też supernaklejki, są opisane w Centrum pomocy YouTube. (Zobacz rozwijaną sekcję ze szczegółami zakupu superczatu). Na tej liście poziom z najniższą kwotą płatności to poziom 1, kolejny najniższy to poziom 2 itd.
snippet.pollDetails object
Ten obiekt zawiera szczegółowe informacje o zdarzeniu związanym z ankietą. Występuje tylko wtedy, gdy typ wiadomości to pollEvent.
snippet.pollDetails.metadata object
Szczegóły zdarzenia związanego z ankietą.
snippet.pollDetails.metadata.options object
Opcje w ankiecie na żywo.
snippet.pollDetails.metadata.options.optionText string
Tekst opcji ankiety na żywo.
snippet.pollDetails.metadata.options.tally string
Liczba głosów oddanych na opcję w ankiecie na żywo. Liczba jest widoczna tylko wtedy, gdy żądanie do interfejsu API zostało autoryzowane przez właściciela kanału.
snippet.pollDetails.metadata.questionText string
Tekst pytania w ankiecie na żywo.
snippet.pollDetails.metadata.status enum
Stan wydarzenia związanego z ankietą na żywo. Prawidłowe wartości tej właściwości to:
  • unknown
  • active
  • closed
snippet.membershipGiftingDetails object
Ten obiekt zawiera szczegółowe informacje o wydarzeniu związanym z podarowaniem subskrypcji wspieranego kanału. Jest on obecny tylko wtedy, gdy message type ma wartość membershipGiftingEvent.
snippet.membershipGiftingDetails.giftMembershipsCount integer
Liczba wspierań kanału w prezencie kupionych przez użytkownika.
snippet.membershipGiftingDetails.giftMembershipsLevelName string
Nazwa poziomu wspierania kanału w prezencie, który został kupiony przez użytkownika. Nazwy poziomów są określane przez kanał YouTube oferujący wspieranie. W niektórych sytuacjach to pole nie jest wypełnione.
snippet.giftMembershipReceivedDetails object
Ten obiekt zawiera szczegóły zdarzenia Otrzymano wspieranie kanału w prezencie. Jest on obecny tylko wtedy, gdy message type ma wartość giftMembershipReceivedEvent.
snippet.giftMembershipReceivedDetails.memberLevelName string
Nazwa poziomu, na którym widz jest wspierającym. Odpowiada to snippet.membershipGiftingDetails.giftMembershipsLevelName powiązanej wiadomości o podarowaniu subskrypcji wspieranego kanału. Nazwy poziomów są określane przez kanał w YouTube, który oferuje wspieranie. W niektórych sytuacjach to pole nie jest wypełnione.
snippet.giftMembershipReceivedDetails.gifterChannelId string
Identyfikator użytkownika, który kupił podarunek subskrypcji wspieranego kanału. Odpowiada to snippet.authorChannelId powiązanej wiadomości o podarowaniu subskrypcji wspieranego kanału.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
Identyfikator wiadomości o podarowaniu subskrypcji wspieranego kanału, która jest powiązana z tym wspieraniem kanału w prezencie. Ten identyfikator zawsze będzie odnosić się do wiadomości, której type to membershipGiftingEvent.
snippet.giftDetails object
Ten obiekt zawiera szczegółowe informacje o wydarzeniu związanym z prezentem. Jest on widoczny tylko wtedy, gdy element message type ma wartość giftEvent.
snippet.giftDetails.jewelsAmount integer
Liczba diamentów wykorzystanych na prezent.
snippet.giftDetails.giftName string
Nazwa prezentu.
snippet.giftDetails.giftUrl string
Adres URL zasobu prezentu.
snippet.giftDetails.giftDuration object
Czas wyświetlania adresu URL prezentu.
snippet.giftDetails.giftDuration.seconds integer
Liczba sekund, przez które ma być wyświetlany adres URL prezentu.
snippet.giftDetails.giftDuration.nanos integer
Liczba nanosekund, przez które ma być wyświetlany adres URL prezentu.
snippet.giftDetails.hasVisualEffect boolean
Czy prezent ma efekt wizualny.
snippet.giftDetails.comboCount integer
Liczba prezentów w zestawie; 0, jeśli nie jest to zestaw.
snippet.giftDetails.altText string
Ciąg tekstowy opisujący prezent.
snippet.giftDetails.language string
Język wartości właściwości altText.
authorDetails object
Obiekt authorDetails zawiera dodatkowe informacje o użytkowniku, który opublikował tę wiadomość.
authorDetails.channelId string
Identyfikator kanału YouTube autora.
authorDetails.channelUrl string
Adres URL kanału autora w YouTube.
authorDetails.displayName string
Wyświetlana nazwa kanału autora w YouTube.
authorDetails.profileImageUrl string
Adres URL awatara kanału autora w YouTube.
authorDetails.isVerified boolean
Ta wartość wskazuje, czy tożsamość autora została zweryfikowana przez YouTube.
authorDetails.isChatOwner boolean
Ta wartość wskazuje, czy autor jest właścicielem czatu na żywo.
authorDetails.isChatSponsor boolean
Ta wartość wskazuje, czy autor jest sponsorem czatu na żywo.
authorDetails.isChatModerator boolean
Ta wartość wskazuje, czy autor jest moderatorem czatu na żywo.