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 |
stringOkreśla typ zasobu interfejsu API. Wartość będzie wynosić youtube#liveChatMessage. |
etag |
etagEtag tego zasobu. |
id |
stringIdentyfikator, 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 |
objectObiekt snippet zawiera podstawowe informacje o wiadomości na czacie. |
snippet.type |
stringTyp 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:
|
snippet.liveChatId |
stringIdentyfikator, 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 |
stringIdentyfikator użytkownika, który napisał wiadomość. To pole jest wypełniane tylko w przypadku tych typów wiadomości:
|
snippet.publishedAt |
datetimeData i godzina pierwotnego opublikowania wiadomości. Wartość jest podana w formacie ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
snippet.hasDisplayContent |
booleanWskazuje, czy wiadomość zawiera treści do wyświetlenia użytkownikom. |
snippet.displayMessage |
stringZawiera ciąg znaków wyświetlany użytkownikom. To pole nie występuje, jeśli typ wiadomości to chatEndedEvent lub tombstone. |
snippet.fanFundingEventDetails |
objectUwaga: 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 longUwaga: ta właściwość została wycofana. Wartość funduszu. |
snippet.fanFundingEventDetails.currency |
stringUwaga: ta właściwość została wycofana. Waluta, w której dokonano wpłaty. |
snippet.fanFundingEventDetails.amountDisplayString |
stringUwaga: ta właściwość została wycofana. Wyrenderowany ciąg znaków, który wyświetla użytkownikowi kwotę i walutę. |
snippet.fanFundingEventDetails.userComment |
stringUwaga: ta właściwość została wycofana. Komentarz dodany przez użytkownika do tego zdarzenia finansowania przez fanów. |
snippet.textMessageDetails |
objectTen obiekt zawiera szczegółowe informacje o SMS-ie. Jest on obecny tylko wtedy, gdy typ wiadomości to textMessageEvent. |
snippet.textMessageDetails.messageText |
stringWiadomość użytkownika. |
snippet.userBannedDetails |
objectTen 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 |
objectTen obiekt zawiera informacje o zablokowanym użytkowniku. |
snippet.userBannedDetails.bannedUserDetails.channelId |
stringIdentyfikator kanału YouTube zablokowanego użytkownika. |
snippet.userBannedDetails.bannedUserDetails.channelUrl |
stringAdres URL kanału YouTube zablokowanego użytkownika. |
snippet.userBannedDetails.bannedUserDetails.displayName |
stringWyświetlana nazwa kanału YouTube zablokowanego użytkownika. |
snippet.userBannedDetails.bannedUserDetails.profileImageUrl |
stringAwatar kanału YouTube zbanowanego użytkownika. |
snippet.userBannedDetails.banType |
stringRodzaj blokady. Prawidłowe wartości tego atrybutu to:
|
snippet.userBannedDetails.banDurationSeconds |
unsigned longCzas trwania blokady. Ta właściwość jest obecna tylko wtedy, gdy wartość właściwości snippet.userBannedDetails.banType to temporary. |
snippet.memberMilestoneChatDetails |
objectTen 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 |
stringKomentarz 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 |
stringNazwa 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 |
objectTen 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 |
stringNazwa 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 |
boolWskazuje, 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 |
objectTen obiekt zawiera szczegóły dotyczące superczatu. Jest on obecny tylko wtedy, gdy typ wiadomości to superChatEvent. |
snippet.superChatDetails.amountMicros |
unsigned longKwota 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 |
stringWaluta, w której dokonano zakupu. Wartość to kod waluty w formacie ISO 4217. |
snippet.superChatDetails.amountDisplayString |
stringCią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 |
stringKomentarz dodany przez użytkownika do tego superczatu. |
snippet.superChatDetails.tier |
unsigned integerPoziom 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 |
objectTen obiekt zawiera szczegóły dotyczące zdarzenia związanego z supernaklejką. Występuje tylko wtedy, gdy typ wiadomości to superStickerEvent. |
snippet.superStickerDetails.superStickerMetadata |
objectSzczegóły dotyczące supernaklejki. |
snippet.superStickerDetails.superStickerMetadata.stickerId |
stringUnikalny 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 |
stringCią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 |
stringJęzyk wartości właściwości snippet.superStickerDetails.superStickerMetadata.altText. |
snippet.superStickerDetails.amountMicros |
unsigned longKwota 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 |
stringWaluta, w której dokonano zakupu. Wartość to kod waluty w formacie ISO 4217. |
snippet.superStickerDetails.amountDisplayString |
stringCią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 integerPoziom 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 |
objectTen obiekt zawiera szczegółowe informacje o zdarzeniu związanym z ankietą. Występuje tylko wtedy, gdy typ wiadomości to pollEvent. |
snippet.pollDetails.metadata |
objectSzczegóły zdarzenia związanego z ankietą. |
snippet.pollDetails.metadata.options |
objectOpcje w ankiecie na żywo. |
snippet.pollDetails.metadata.options.optionText |
stringTekst opcji ankiety na żywo. |
snippet.pollDetails.metadata.options.tally |
stringLiczba 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 |
stringTekst pytania w ankiecie na żywo. |
snippet.pollDetails.metadata.status |
enumStan wydarzenia związanego z ankietą na żywo. Prawidłowe wartości tej właściwości to:
|
snippet.membershipGiftingDetails |
objectTen 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 |
integerLiczba wspierań kanału w prezencie kupionych przez użytkownika. |
snippet.membershipGiftingDetails.giftMembershipsLevelName |
stringNazwa 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 |
objectTen 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 |
stringNazwa 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 |
stringIdentyfikator 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 |
stringIdentyfikator 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 |
objectTen 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 |
integerLiczba diamentów wykorzystanych na prezent. |
snippet.giftDetails.giftName |
stringNazwa prezentu. |
snippet.giftDetails.giftUrl |
stringAdres URL zasobu prezentu. |
snippet.giftDetails.giftDuration |
objectCzas wyświetlania adresu URL prezentu. |
snippet.giftDetails.giftDuration.seconds |
integerLiczba sekund, przez które ma być wyświetlany adres URL prezentu. |
snippet.giftDetails.giftDuration.nanos |
integerLiczba nanosekund, przez które ma być wyświetlany adres URL prezentu. |
snippet.giftDetails.hasVisualEffect |
booleanCzy prezent ma efekt wizualny. |
snippet.giftDetails.comboCount |
integerLiczba prezentów w zestawie; 0, jeśli nie jest to zestaw. |
snippet.giftDetails.altText |
stringCiąg tekstowy opisujący prezent. |
snippet.giftDetails.language |
stringJęzyk wartości właściwości altText. |
authorDetails |
objectObiekt authorDetails zawiera dodatkowe informacje o użytkowniku, który opublikował tę wiadomość. |
authorDetails.channelId |
stringIdentyfikator kanału YouTube autora. |
authorDetails.channelUrl |
stringAdres URL kanału autora w YouTube. |
authorDetails.displayName |
stringWyświetlana nazwa kanału autora w YouTube. |
authorDetails.profileImageUrl |
stringAdres URL awatara kanału autora w YouTube. |
authorDetails.isVerified |
booleanTa wartość wskazuje, czy tożsamość autora została zweryfikowana przez YouTube. |
authorDetails.isChatOwner |
booleanTa wartość wskazuje, czy autor jest właścicielem czatu na żywo. |
authorDetails.isChatSponsor |
booleanTa wartość wskazuje, czy autor jest sponsorem czatu na żywo. |
authorDetails.isChatModerator |
booleanTa wartość wskazuje, czy autor jest moderatorem czatu na żywo. |