Una risorsa liveChatMessage rappresenta un messaggio della chat in una chat live di YouTube. La risorsa può contenere dettagli su diversi tipi di messaggi, tra cui un messaggio di testo appena pubblicato o un evento di finanziamento dei fan.
La funzionalità di chat live è attivata per impostazione predefinita per le trasmissioni live ed è disponibile mentre l'evento live è attivo. Al termine dell'evento, la chat live non è più disponibile.
Metodi
L'API supporta i seguenti metodi per le risorse liveChatMessages:
- list
- Elenca i messaggi della chat live per una chat specifica. Prova subito.
- streamList
- Consente una connessione di streaming lato server per ricevere messaggi della chat live per una chat specifica a bassa latenza. Prova subito.
- insert
- Aggiunge un messaggio o un sondaggio a una chat live. Prova subito.
- transition
- Modifica lo stato di un messaggio pubblicato. Prova subito.
- elimina
- Elimina un messaggio di chat. La richiesta API deve essere autorizzata dal proprietario del canale o da un moderatore della chat live. Prova subito.
Rappresentazione delle risorse
La seguente struttura JSON mostra il formato di una risorsa 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
},
}Proprietà
La tabella seguente definisce le proprietà visualizzate in questa risorsa:
| Proprietà | |
|---|---|
kind |
stringIdentifica il tipo di risorsa API. Il valore sarà youtube#liveChatMessage. |
etag |
etagL'ETag di questa risorsa. |
id |
stringL'ID che YouTube assegna per identificare in modo univoco il messaggio. |
snippet |
objectL'oggetto snippet contiene i dettagli principali del messaggio di chat. |
snippet.type |
stringIl tipo di messaggio. Questa proprietà è sempre presente e il suo valore determina quali campi sono presenti nella risorsa. I valori validi per questa proprietà sono:
|
snippet.liveChatId |
stringL'ID che identifica in modo univoco la chat live a cui è associato il messaggio. L'ID della chat live associato a una trasmissione viene restituito nella proprietà snippet.liveChatId della risorsa liveBroadcast. |
snippet.authorChannelId |
stringL'ID dell'utente che ha creato il messaggio. Questo campo viene compilato solo per i seguenti tipi di messaggi:
|
snippet.publishedAt |
datetimeLa data e l'ora in cui il messaggio è stato pubblicato originariamente. Il valore è specificato nel formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
snippet.hasDisplayContent |
booleanIndica se il messaggio contiene contenuti di visualizzazione che devono essere mostrati agli utenti. |
snippet.displayMessage |
stringContiene una stringa visualizzata dagli utenti. Questo campo non è presente se il tipo di messaggio è chatEndedEvent o tombstone. |
snippet.fanFundingEventDetails |
objectNota: questo oggetto e le relative proprietà secondarie sono stati ritirati. A partire dal 28 febbraio 2017, le risorse liveChatMessage non restituiranno più i dettagli degli eventi di finanziamento dei fan.Questo oggetto contiene i dettagli dell'evento di finanziamento. È presente solo se il tipo di messaggio è fanFundingEvent. |
snippet.fanFundingEventDetails.amountMicros |
unsigned longNota: questa proprietà è obsoleta. L'importo del fondo. |
snippet.fanFundingEventDetails.currency |
stringNota: questa proprietà è stata ritirata. La valuta in cui è stato effettuato il finanziamento. |
snippet.fanFundingEventDetails.amountDisplayString |
stringNota: questa proprietà è stata ritirata. Una stringa sottoposta a rendering che mostra all'utente l'importo del fondo e la valuta. |
snippet.fanFundingEventDetails.userComment |
stringNota: questa proprietà è stata ritirata. Il commento aggiunto dall'utente a questo evento di finanziamento dei fan. |
snippet.textMessageDetails |
objectQuesto oggetto contiene i dettagli del messaggio di testo. È presente solo se il tipo di messaggio è textMessageEvent. |
snippet.textMessageDetails.messageText |
stringIl messaggio dell'utente. |
snippet.messageDeletedDetails |
objectQuesto oggetto contiene dettagli su un messaggio eliminato da un moderatore della chat o dal proprietario del canale della trasmissione live. È presente solo se il tipo di messaggio è messageDeletedEvent. |
snippet.messageDeletedDetails.deletedMessageId |
stringL'ID che identifica in modo univoco il messaggio eliminato. Il valore è uguale al valore della proprietà id del messaggio di testo originale. Ad esempio, se un textMessageEvent ha un valore della proprietà id pari a 123 e questo messaggio viene successivamente eliminato, il valore di snippet.messageDeletedDetails.deletedMessageId sarà 123 per quel messaggio.Se memorizzi nella cache i messaggi di chat dopo averli recuperati, utilizza il valore di questa proprietà per identificare il messaggio che non deve più essere visualizzato. |
snippet.userBannedDetails |
objectQuesto oggetto contiene dettagli su un utente che è stato escluso dalla chat. Contiene anche dettagli sul ban stesso. Gli utenti possono essere bannati da una chat in modo permanente o temporaneo. |
snippet.userBannedDetails.bannedUserDetails |
objectQuesto oggetto contiene informazioni sull'utente escluso. |
snippet.userBannedDetails.bannedUserDetails.channelId |
stringL'ID canale YouTube dell'utente escluso. |
snippet.userBannedDetails.bannedUserDetails.channelUrl |
stringL'URL del canale YouTube dell'utente escluso. |
snippet.userBannedDetails.bannedUserDetails.displayName |
stringIl nome visualizzato del canale YouTube dell'utente bannato. |
snippet.userBannedDetails.bannedUserDetails.profileImageUrl |
stringL'avatar del canale YouTube dell'utente bannato. |
snippet.userBannedDetails.banType |
stringIl tipo di ban. I valori validi per questa proprietà sono:
|
snippet.userBannedDetails.banDurationSeconds |
unsigned longLa durata del ban. Questa proprietà è presente solo se il valore della proprietà snippet.userBannedDetails.banType è temporary. |
snippet.memberMilestoneChatDetails |
objectQuesto oggetto contiene dettagli su un evento traguardo del membro. È presente solo se il tipo di messaggio è memberMilestoneChatEvent. |
snippet.memberMilestoneChatDetails.userComment |
stringIl commento aggiunto dall'abbonato a questo messaggio di chat per traguardo abbonamento. Questo campo è vuoto per i messaggi senza commenti da parte del membro. |
snippet.memberMilestoneChatDetails.memberMonth |
unsigned integerIl numero totale di mesi (arrotondato per eccesso) di abbonamento dello spettatore che gli ha consentito di ricevere questo messaggio di fedeltà al canale. Si tratta dello stesso numero di mesi visualizzato dagli utenti di YouTube. |
snippet.memberMilestoneChatDetails.memberLevelName |
stringIl nome del livello a cui appartiene lo spettatore. I nomi dei livelli sono definiti dal canale YouTube che offre l'abbonamento. In alcune situazioni questo campo non viene compilato. |
snippet.newSponsorDetails |
objectQuesto oggetto contiene dettagli sull'evento Annuncio di un nuovo membro. Questo valore viene impostato solo se il tipo è newSponsorEvent. "Membro" è il termine che indica lo "sponsor".
|
snippet.newSponsorDetails.memberLevelName |
stringIl nome del livello a cui appartiene lo spettatore. I nomi dei livelli sono definiti dal canale YouTube che offre l'abbonamento. In alcune situazioni, questo campo non viene compilato. |
snippet.newSponsorDetails.isUpgrade |
boolIndica se lo spettatore ha appena eseguito l'upgrade da un livello inferiore. Per gli spettatori che non erano abbonati al momento dell'acquisto, il valore del campo è false.
|
snippet.superChatDetails |
objectQuesto oggetto contiene i dettagli di un evento Superchat. È presente solo se il tipo di messaggio è superChatEvent. |
snippet.superChatDetails.amountMicros |
unsigned longL'importo dell'acquisto, in micro della valuta di acquisto. Ad esempio, se l'importo dell'acquisto è di un dollaro, il valore della proprietà snippet.amountMicros è 1000000. |
snippet.superChatDetails.currency |
stringLa valuta in cui è stato effettuato l'acquisto. Il valore è un codice valuta ISO 4217. |
snippet.superChatDetails.amountDisplayString |
stringUna stringa, ad esempio $1.00, che contiene l'importo e la valuta dell'acquisto. La stringa è destinata a essere visualizzata dall'utente. |
snippet.superChatDetails.userComment |
stringIl commento aggiunto dall'utente a questo evento Superchat. |
snippet.superChatDetails.tier |
unsigned integerIl livello del messaggio a pagamento. Tieni presente che in una risorsa superChatEvent, la proprietà snippet.messageType contiene questo valore.Il livello si basa sull'importo speso per l'acquisto del messaggio. Determina anche il colore utilizzato per evidenziare il messaggio nell'interfaccia utente della chat live, la lunghezza massima del messaggio e il periodo di tempo in cui il messaggio viene visualizzato nel riquadro di aggiornamento. I livelli di Superchat sono documentati nel Centro assistenza YouTube. (Consulta la sezione espandibile con i dettagli dell'acquisto di Superchat.) In questo elenco, il livello con l'importo di acquisto più basso è il livello 1, il successivo importo più basso è il livello 2 e così via. |
snippet.superStickerDetails |
objectQuesto oggetto contiene i dettagli di un evento Super Sticker. È presente solo se il tipo di messaggio è superStickerEvent. |
snippet.superStickerDetails.superStickerMetadata |
objectDettagli sul Super Sticker. |
snippet.superStickerDetails.superStickerMetadata.stickerId |
stringUn ID univoco che identifica l'immagine dell'adesivo. Tieni presente che l'immagine viene visualizzata solo come parte del messaggio del Super Sticker quando gli utenti visualizzano la finestra della chat su YouTube. Tuttavia, l'URL dell'immagine non è disponibile tramite l'API. Solo a titolo di riferimento, puoi trovare gli ID degli adesivi correlati ai Super Sticker in questo file CSV. |
snippet.superStickerDetails.superStickerMetadata.altText |
stringUna stringa di testo che descrive l'adesivo. Il campo snippet.superStickerDetails.superStickerMetadata.language identifica la lingua del testo. Quando chiami il metodo liveChatMessages.list, imposta il valore del parametro hl sulla lingua scelta per il testo. |
snippet.superStickerDetails.superStickerMetadata.language |
stringLa lingua del valore della proprietà snippet.superStickerDetails.superStickerMetadata.altText. |
snippet.superStickerDetails.amountMicros |
unsigned longL'importo dell'acquisto, in micro della valuta di acquisto. Ad esempio, se l'importo dell'acquisto è di un dollaro, il valore della proprietà snippet.amountMicros è 1000000. |
snippet.superStickerDetails.currency |
stringLa valuta in cui è stato effettuato l'acquisto. Il valore è un codice valuta ISO 4217. |
snippet.superStickerDetails.amountDisplayString |
stringUna stringa, ad esempio $1.00, che contiene l'importo e la valuta dell'acquisto. La stringa è destinata a essere visualizzata dall'utente. |
snippet.superStickerDetails.tier |
unsigned integerIl livello del messaggio a pagamento. Tieni presente che in una risorsa superChatEvent, la proprietà snippet.messageType contiene questo valore.Il livello si basa sull'importo speso per l'acquisto del messaggio. Determina inoltre il colore utilizzato per evidenziare il messaggio nell'interfaccia utente della chat live, la lunghezza massima del messaggio e il periodo di tempo in cui il messaggio viene visualizzato nel riquadro di aggiornamento. I livelli di Superchat, che includono anche i Super Sticker, sono documentati nel Centro assistenza YouTube. (Consulta la sezione espandibile con i dettagli dell'acquisto di Superchat.) In questo elenco, il livello con l'importo di acquisto più basso è il livello 1, il successivo importo più basso è il livello 2 e così via. |
snippet.pollDetails |
objectQuesto oggetto contiene dettagli su un evento di sondaggio. È presente solo se il tipo di messaggio è pollEvent. |
snippet.pollDetails.metadata |
objectDettagli sull'evento del sondaggio. |
snippet.pollDetails.metadata.options |
objectLe opzioni nel sondaggio in tempo reale. |
snippet.pollDetails.metadata.options.optionText |
stringIl testo dell'opzione del sondaggio dal vivo. |
snippet.pollDetails.metadata.options.tally |
stringIl conteggio dell'opzione del sondaggio live. Il conteggio è presente solo se la richiesta API è autorizzata dal proprietario del canale. |
snippet.pollDetails.metadata.questionText |
stringIl testo della domanda del sondaggio in tempo reale. |
snippet.pollDetails.metadata.status |
enumLo stato dell'evento sondaggio live. I valori validi per questa proprietà sono:
|
snippet.membershipGiftingDetails |
objectQuesto oggetto contiene dettagli su un evento di regalo di abbonamento. È presente solo se message type è membershipGiftingEvent. |
snippet.membershipGiftingDetails.giftMembershipsCount |
integerIl numero di abbonamenti regalo acquistati dall'utente. |
snippet.membershipGiftingDetails.giftMembershipsLevelName |
stringIl nome del livello degli abbonamenti regalo acquistati dall'utente. I nomi dei livelli sono definiti dal canale YouTube che offre l'abbonamento. In alcune situazioni, questo campo non viene compilato. |
snippet.giftMembershipReceivedDetails |
objectQuesto oggetto contiene i dettagli di un evento Abbonamento senza costi ricevuto. È presente solo se message type è giftMembershipReceivedEvent. |
snippet.giftMembershipReceivedDetails.memberLevelName |
stringIl nome del livello a cui appartiene lo spettatore. Corrisponde al snippet.membershipGiftingDetails.giftMembershipsLevelName del messaggio di regalo dell'abbonamento associato. I nomi dei livelli sono definiti dal canale YouTube che offre l'abbonamento. In alcune situazioni, questo campo non viene compilato. |
snippet.giftMembershipReceivedDetails.gifterChannelId |
stringL'ID dell'utente che ha effettuato l'acquisto del regalo dell'abbonamento. Corrisponde al snippet.authorChannelId del messaggio di regalo dell'abbonamento associato. |
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId |
stringL'ID del messaggio di regalo dell'abbonamento correlato a questo abbonamento regalo. Questo ID si riferirà sempre a un messaggio il cui type è membershipGiftingEvent. |
authorDetails |
objectL'oggetto authorDetails contiene ulteriori dettagli sull'utente che ha pubblicato questo messaggio. |
authorDetails.channelId |
stringL'ID canale YouTube dell'autore. |
authorDetails.channelUrl |
stringL'URL del canale YouTube dell'autore. |
authorDetails.displayName |
stringIl nome visualizzato del canale YouTube dell'autore. |
authorDetails.profileImageUrl |
stringL'URL dell'avatar del canale YouTube dell'autore. |
authorDetails.isVerified |
booleanQuesto valore indica se l'identità dell'autore è stata verificata da YouTube. |
authorDetails.isChatOwner |
booleanQuesto valore indica se l'autore è il proprietario della live chat. |
authorDetails.isChatSponsor |
booleanQuesto valore indica se l'autore è uno sponsor della chat live. |
authorDetails.isChatModerator |
booleanQuesto valore indica se l'autore è un moderatore della chat live. |