LiveChatMessages

Zasób liveChatMessage reprezentuje wiadomość na czacie na żywo w YouTube. Zasób może zawierać szczegóły dotyczące kilku typów wiadomości, w tym nowo opublikowanej wiadomości tekstowej lub wydarzenia dotyczącego finansowania przez fanów.

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

Metody

Interfejs API obsługuje te metody dotyczące zasobów liveChatMessages:

list
Wyświetla listę wiadomości z czatu na żywo dotyczącego konkretnego czatu. Wypróbuj teraz
insert
Dodaje wiadomość lub ankietę do czatu na żywo. Wypróbuj teraz
transition
Przechodzi do stanu wiadomości na żywo. Wypróbuj teraz
usuń
Usuwanie wiadomości z czatu. Żądanie do interfejsu API musi być autoryzowane przez właściciela kanału lub moderatora czatu na żywo. Wypróbuj teraz

Reprezentacja zasobu

Struktura JSON poniżej pokazuje 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
    },
    "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
  },
}

Właściwości

Właściwości występujące w tym zasobie są opisane w tabeli poniżej:

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 nadany przez YouTube w celu jednoznacznego zidentyfikowania wiadomości.
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ą dostępne w zasobach.

Prawidłowe wartości tej właściwości to:
  • chatEndedEvent – czat został zakończony i nie można dodać więcej wiadomości. Wyświetli się on automatycznie po zakończeniu transmisji. Tego typu wiadomości nie wysyła się na czatach na żywo podczas transmisji domyślnej na kanale.
  • messageDeletedEvent – wiadomość została usunięta przez moderatora. Pole author zawiera dane moderatora. To wydarzenie nie ma żadnych treści wyświetlanych.
  • 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 ma żadnych treści wyświetlanych.
  • sponsorOnlyModeStartedEvent – czat przeszedł w tryb tylko dla sponsorów, co oznacza, że tylko sponsorzy mogą wysyłać wiadomości. To wydarzenie nie ma wyświetlanych treści.
  • newSponsorEvent – nowy użytkownik sfinansował kanał, na którym odbywa się czat na żywo. Pola author zawierają dane nowego sponsora.
  • memberMilestoneChatEvent – użytkownik wysłał wiadomość od wspierającego z okazji osiągnięcia kolejnego progu.
  • superChatEvent – użytkownik kupił superczat.
  • superStickerEvent – użytkownik kupił supernaklejkę.
  • textMessageEvent – użytkownik wysłał SMS-a.
  • tombstone – symbol oznacza, że wiadomość o tym identyfikatorze i dacie publikacji istniała, ale została później usunięta. Nie jest ona wysyłana po usunięciu wiadomości, ale wyświetlana, aby wskazać, gdzie znajdowała się wiadomość przed usunięciem. W tym typie wiadomości dostępne są tylko pola snippet.liveChatId, snippet.type i snippet.publishedAt.
  • userBannedEvent – moderator zablokował użytkownika. 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.
snippet.liveChatId string
Identyfikator jednoznacznie identyfikujący czat na żywo, z którym powiązana jest wiadomość. Identyfikator czatu na żywo powiązany z transmisją jest zwracany w właściwości snippet.liveChatId zasobu liveBroadcast.
snippet.authorChannelId string
Identyfikator użytkownika, który jest autorem wiadomości. 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 messageDeletedEvent, wartość właściwości wskazuje moderatora, który ją usunął.
  • Jeśli typ wiadomości to newSponsorEvent, wartość właściwości wskazuje użytkownika, który właśnie został sponsorem.
  • Jeśli typ wiadomości to memberMilestoneChatEvent, wartość właściwości identyfikuje użytkownika, który wysłał wiadomość.
  • Jeśli typ wiadomości to userBannedEvent, wartość właściwości wskazuje moderatora, który zablokował użytkownika.
  • Jeśli typ wiadomości to membershipGiftingEvent, wartość właściwości identyfikuje użytkownika, który dokonał zakupu prezentu w postaci subskrypcji.
  • Jeśli typ wiadomości to giftMembershipReceivedEvent, wartość właściwości identyfikuje użytkownika, który otrzymał subskrypcję w prezencie.
  • Jeśli typ wiadomości to pollEvent, wartość właściwości identyfikuje użytkownika, który utworzył ankietę na żywo.
snippet.publishedAt datetime
Data i godzina pierwotnego opublikowania wiadomości. Wartość jest podawana w formacie ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.hasDisplayContent boolean
Wskazuje, czy wiadomość zawiera treści, które powinny być wyświetlane użytkownikom.
snippet.displayMessage string
Zawiera ciąg znaków wyświetlany użytkownikom. To pole nie jest widoczne, 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 zdarzeń finansowania przez fanów.

Ten obiekt zawiera szczegóły zdarzenia finansowania. Jest obecny tylko wtedy, gdy typ wiadomości to fanFundingEvent.
snippet.fanFundingEventDetails.amountMicros unsigned long
Uwaga: ta właściwość została wycofana.

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

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

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

Komentarz dodany przez użytkownika do tego wydarzenia dotyczącego finansowania przez fanów.
snippet.textMessageDetails object
Ten obiekt zawiera informacje o wiadomości tekstowej. Jest obecny tylko wtedy, gdy typ wiadomości to textMessageEvent.
snippet.textMessageDetails.messageText string
Wiadomość użytkownika.
snippet.messageDeletedDetails object
Ten obiekt zawiera informacje o wiadomości, którą moderator czatu lub właściciel kanału transmisji na żywo usunął. Jest obecny tylko wtedy, gdy typ wiadomości to messageDeletedEvent.
snippet.messageDeletedDetails.deletedMessageId string
Identyfikator jednoznacznie identyfikujący usuniętą wiadomość. Wartość jest taka sama jak wartość właściwości id w pierwotnej wiadomości tekstowej. Jeśli na przykład wiadomość textMessageEvent ma wartość właściwości id równą 123, a następnie zostanie usunięta, wartość snippet.messageDeletedDetails.deletedMessageId dla tej wiadomości będzie wynosić 123.

Jeśli po pobraniu wiadomości z pamięci podręcznej przechowujesz je w pamięci podręcznej, użyj wartości tej właściwości, aby zidentyfikować wiadomość, która nie powinna już być wyświetlana.
snippet.userBannedDetails object
Ten obiekt zawiera informacje o użytkowniku, który został wykluczony z czatu. Zawiera on też szczegóły dotyczące samego zakazu. Użytkownicy mogą zostać na stałe lub tymczasowo wykluczeni z czatu.
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 zablokowanego użytkownika.
snippet.userBannedDetails.banType string
Typ zablokowania. Prawidłowe wartości tej właściwości to:
  • Trwałe
  • 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 etapu Użytkownik. Jest obecny tylko wtedy, gdy typ wiadomości to memberMilestoneChatEvent.
snippet.memberMilestoneChatDetails.userComment string
Komentarz dodany przez wspierającego w ramach wiadomości od wspierającego z okazji osiągnięcia kolejnego progu. To pole jest puste w przypadku wiadomości bez komentarza członka zespołu.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
Łączna liczba miesięcy (zaokrąglona w górę), w których widz był wspierającym i które dały mu możliwość skorzystania z wiadomości na czacie dla wspierających osiągających kolejny próg. Jest to ta sama liczba miesięcy, która jest wyświetlana użytkownikom YouTube.
snippet.memberMilestoneChatDetails.memberLevelName string
Nazwa poziomu, na którym użytkownik jest członkiem. Nazwy poziomów są definiowane przez kanał YouTube, który oferuje wspieranie. W niektórych sytuacjach to pole może być puste.
snippet.newSponsorDetails object
Ten obiekt zawiera szczegóły zdarzenia Announcement (Ogłoszenie) dotyczącego nowego członka. Jest on ustawiony tylko wtedy, gdy typ to newSponsorEvent. „Członek” to termin oznaczający „sponsora”.
snippet.newSponsorDetails.memberLevelName string
Nazwa poziomu, na którym użytkownik jest członkiem. Nazwy poziomów są definiowane przez kanał YouTube, który oferuje wspieranie. W niektórych sytuacjach to pole może być puste.
snippet.newSponsorDetails.isUpgrade bool
Wskazuje, czy widz właśnie przeszedł na wyższy poziom. W przypadku widzów, którzy nie byli wspierającymi w momencie zakupu, wartość pola to false.
snippet.superChatDetails object
Ten obiekt zawiera szczegóły zdarzenia superczatu. Jest obecny tylko wtedy, gdy typ wiadomości to superChatEvent.
snippet.superChatDetails.amountMicros unsigned long
Kwota zakupu w milionowych częściach waluty zakupu. Jeśli na przykład kwota zakupu wynosi 1 dolar, 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, np. $1.00, zawierający kwotę i walutę zakupu. Ten ciąg znaków ma być wyświetlany użytkownikowi.
snippet.superChatDetails.userComment string
Komentarz dodany przez użytkownika do tego zdarzenia superczatu.
snippet.superChatDetails.tier unsigned integer
Poziom wiadomości płatnej. Pamiętaj, że w zasobie superChatEvent wartość tę zawiera właściwość snippet.messageType.

Poziom jest określany na podstawie kwoty wydanej na zakup wiadomości. Określa on też kolor używany do wyróżniania wiadomości w interfejsie czatu na żywo, maksymalną długość wiadomości oraz czas, przez jaki wiadomość jest przypięta do tickera.

Poziomy superczatu są opisane w Centrum pomocy YouTube. (zobacz rozwijaną sekcję dotyczącą szczegółów zakupu superczatów). Na tej liście poziom z najniższą kwotą zakupu jest poziomem 1, następny z najniższą kwotą jest poziomem 2 itd.
snippet.superStickerDetails object
Ten obiekt zawiera szczegóły zdarzenia związanego z supernaklejką. Jest obecny tylko wtedy, gdy typ wiadomości to superStickerEvent.
snippet.superStickerDetails.superStickerMetadata object
Informacje o supernaklejce.
snippet.superStickerDetails.superStickerMetadata.stickerId string
Unikalny identyfikator, który identyfikuje obraz naklejki. Pamiętaj, że obraz jest wyświetlany tylko w ramach wiadomości z naklejką Super Sticker, gdy użytkownicy otwierają okno czatu w YouTube. Adres URL obrazu nie jest jednak dostępny za pomocą interfejsu API. Informacje o tym, które identyfikatory naklejek odpowiadają którym supernaklejkom, znajdziesz w tym pliku CSV (tylko do celów informacyjnych).
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 zakupu w milionowych częściach waluty zakupu. Jeśli na przykład kwota zakupu wynosi 1 dolar, 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, np. $1.00, zawierający kwotę i walutę zakupu. Ten ciąg znaków ma być wyświetlany użytkownikowi.
snippet.superStickerDetails.tier unsigned integer
Poziom wiadomości płatnej. Pamiętaj, że w zasobie superChatEvent wartość tę zawiera właściwość snippet.messageType.

Poziom jest ustalany na podstawie kwoty wydanej na zakup wiadomości. Określa on też kolor używany do wyróżniania wiadomości w interfejsie czatu na żywo, maksymalną długość wiadomości oraz czas, przez jaki wiadomość jest przypięta do tickera.

Poziomy superczatu, które obejmują też supernaklejki, są opisane w Centrum pomocy YouTube. (zobacz rozwijaną sekcję dotyczącą szczegółów zakupu superczatów). Na tej liście poziom z najniższą kwotą zakupu jest poziomem 1, następny z najniższą kwotą jest poziomem 2 itd.
snippet.pollDetails object
Ten obiekt zawiera szczegółowe informacje o zdarzeniu ankiety. Jest obecny tylko wtedy, gdy typ wiadomości to pollEvent.
snippet.pollDetails.metadata object
Szczegóły zdarzenia dotyczącego ankiety.
snippet.pollDetails.metadata.options object
Opcje ankiety na żywo.
snippet.pollDetails.metadata.options.optionText string
Tekst opcji ankiety na żywo.
snippet.pollDetails.metadata.options.tally string
Podsumowanie ankiety na żywo. Wyliczenie jest dostępne tylko wtedy, gdy właściciel kanału autoryzuje żądanie interfejsu API.
snippet.pollDetails.metadata.questionText string
Tekst pytania ankiety na żywo.
snippet.pollDetails.metadata.status enum
Stan wydarzenia ankiety 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 zdarzeniu darowania subskrypcji. Jest widoczny tylko wtedy, gdy message type ma wartość membershipGiftingEvent.
snippet.membershipGiftingDetails.giftMembershipsCount integer
Liczba subskrypcji w prezencie zakupionych przez użytkownika.
snippet.membershipGiftingDetails.giftMembershipsLevelName string
Nazwa poziomu subskrypcji prezentowej zakupionej przez użytkownika. Nazwy poziomów są definiowane przez kanał YouTube, który oferuje wspieranie. W niektórych sytuacjach to pole może być puste.
snippet.giftMembershipReceivedDetails object
Ten obiekt zawiera szczegóły zdarzenia dotyczącego otrzymania subskrypcji prezentu. Jest widoczny tylko wtedy, gdy message type ma wartość giftMembershipReceivedEvent.
snippet.giftMembershipReceivedDetails.memberLevelName string
Nazwa poziomu, na którym użytkownik jest członkiem. Musi ona być zgodna z snippet.membershipGiftingDetails.giftMembershipsLevelName powiązanego z nim komunikatu o darowaniu członkostwa. Nazwy poziomów są definiowane przez kanał YouTube, który oferuje wspieranie. W niektórych sytuacjach to pole może być puste.
snippet.giftMembershipReceivedDetails.gifterChannelId string
Identyfikator użytkownika, który dokonał zakupu prezentu w postaci subskrypcji. Musi ona być zgodna z snippet.authorChannelId w powiązanym z nim komunikacie o darowaniu członkostwa.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
Identyfikator wiadomości z kartą podarunkową, która jest powiązana z tą kartą podarunkową. Ten identyfikator zawsze będzie odnosić się do wiadomości, której type to membershipGiftingEvent.
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 YouTube autora.
authorDetails.displayName string
Wyświetlana nazwa kanału YouTube autora.
authorDetails.profileImageUrl string
Adres URL awatara kanału YouTube autora.
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.