LiveChatMessages

Una risorsa liveChatMessage rappresenta un messaggio di chat in una chat dal vivo di YouTube. La risorsa può contenere dettagli su diversi tipi di messaggi, tra cui un messaggio appena pubblicato o un evento relativo ai finanziamenti dei fan.

La funzionalità di chat dal vivo è abilitata per impostazione predefinita per le trasmissioni dal vivo ed è disponibile mentre l'evento dal vivo è attivo. Al termine dell'evento, la chat dal vivo non sarà più disponibile.

Metodi

L'API supporta i seguenti metodi per le risorse liveChatMessages:

list
Elenca i messaggi della chat dal vivo relativi a una chat specifica. Prova subito.
inserisci
Aggiunge un messaggio a una chat dal vivo. Prova subito.
elimina
Elimina un messaggio di chat. La richiesta API deve essere autorizzata dal proprietario del canale o da un moderatore della chat dal vivo. 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
    },
    "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 string
Identifica il tipo di risorsa API. Il valore sarà youtube#liveChatMessage.
etag etag
L'ETag di questa risorsa.
id string
L'ID assegnato da YouTube per identificare in modo univoco il messaggio.
snippet object
L'oggetto snippet contiene i dettagli principali del messaggio di chat.
snippet.type string
Il 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:
  • chatEndedEvent - La chat è terminata e non è più possibile inserire altri messaggi dopo questo. Ciò si verificherà spontaneamente poco dopo la fine della trasmissione. Tieni presente che questo tipo di messaggio non viene attualmente inviato per le chat dal vivo durante la trasmissione predefinita di un canale.
  • messageDeletedEvent - Un messaggio è stato eliminato da un moderatore. Il campo author contiene i dettagli del moderatore. Questo evento non ha contenuti visualizzati.
  • sponsorOnlyModeEndedEvent - La chat non è più in modalità riservata agli sponsor, il che significa che gli utenti che non sono sponsor ora possono inviare messaggi. Questo evento non ha contenuti visualizzati.
  • sponsorOnlyModeStartedEvent - Nella chat è attiva la modalità riservata agli sponsor, il che significa che solo gli sponsor possono inviare messaggi. Questo evento non ha contenuti visualizzati.
  • newSponsorEvent - Un nuovo utente ha sponsorizzato il canale proprietario della chat dal vivo. I campi author contengono i dettagli del nuovo sponsor.
  • memberMilestoneChatEvent - Un utente ha inviato un messaggio di chat per traguardo abbonamento.
  • superChatEvent - Un utente ha acquistato un messaggio Superchat.
  • superStickerEvent - Un utente ha acquistato un Super Sticker.
  • textMessageEvent - Un utente ha inviato un SMS.
  • tombstone - Una lapide indica che un messaggio esisteva con questo ID e la data e l'ora di pubblicazione, ma nel frattempo è stato eliminato. Non viene inviato quando si elimina un messaggio, ma viene mostrato per indicare la posizione del messaggio prima dell'eliminazione. In questo tipo di messaggio sono presenti solo i campi snippet.liveChatId, snippet.type e snippet.publishedAt.
  • userBannedEvent - Un utente è stato escluso da un moderatore. Il campo author contiene i dettagli del moderatore.
  • membershipGiftingEvent - Un utente ha acquistato abbonamenti per altri spettatori.
  • giftMembershipReceivedEvent – Un utente ha ricevuto un abbonamento regalo.
snippet.liveChatId string
L'ID che identifica in modo univoco la chat dal vivo a cui è associato il messaggio. L'ID chat dal vivo associato a una trasmissione viene restituito nella proprietà snippet.liveChatId della risorsa liveBroadcast.
snippet.authorChannelId string
L'ID dell'utente che ha creato il messaggio. Questo campo viene compilato solo per i seguenti tipi di messaggi:
  • Se il tipo di messaggio è textMessageEvent, il valore della proprietà identifica l'utente che ha scritto il messaggio.
  • Se il tipo di messaggio è fanFundingEvent, il valore della proprietà identifica l'utente che ha finanziato la trasmissione.
  • Se il tipo di messaggio è messageDeletedEvent, il valore della proprietà identifica il moderatore che ha eliminato il messaggio.
  • Se il tipo di messaggio è newSponsorEvent, il valore della proprietà identifica l'utente che è appena diventato sponsor.
  • Se il tipo di messaggio è memberMilestoneChatEvent, il valore della proprietà identifica il membro che lo ha inviato.
  • Se il tipo di messaggio è userBannedEvent, il valore della proprietà identifica il moderatore che ha escluso l'utente.
  • Se il tipo di messaggio è membershipGiftingEvent, il valore della proprietà identifica l'utente che ha effettuato l'acquisto di Regala un abbonamento.
  • Se il tipo di messaggio è giftMembershipReceivedEvent, il valore della proprietà identifica l'utente che ha ricevuto l'abbonamento regalo.
snippet.publishedAt datetime
La data e l'ora in cui il messaggio è stato originariamente pubblicato. Il valore è specificato nel formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.hasDisplayContent boolean
Indica se il messaggio include contenuti display che devono essere mostrati agli utenti.
snippet.displayMessage string
Contiene una stringa che viene mostrata agli utenti. Questo campo non è presente se il tipo di messaggio è chatEndedEvent o tombstone.
snippet.fanFundingEventDetails object
Nota: questo oggetto e le relative proprietà secondarie sono stati deprecati. A partire dal 28 febbraio 2017, per le risorse di liveChatMessage non verranno più restituiti dettagli per gli eventi di finanziamenti dei fan.

Questo oggetto contiene dettagli sull'evento di finanziamento. È presente solo se il tipo di messaggio è fanFundingEvent.
snippet.fanFundingEventDetails.amountMicros unsigned long
Nota: questa proprietà è stata ritirata.

L'importo del fondo.
snippet.fanFundingEventDetails.currency string
Nota: questa proprietà è stata ritirata.

La valuta in cui è stato effettuato il fondo.
snippet.fanFundingEventDetails.amountDisplayString string
Nota: questa proprietà è stata ritirata.

Una stringa visualizzata che mostra all'utente l'importo e la valuta del fondo.
snippet.fanFundingEventDetails.userComment string
Nota: questa proprietà è stata ritirata.

Il commento aggiunto dall'utente a questo evento di finanziamenti dei fan.
snippet.textMessageDetails object
Questo oggetto contiene i dettagli del messaggio. È presente solo se il tipo di messaggio è textMessageEvent.
snippet.textMessageDetails.messageText string
Il messaggio dell'utente.
snippet.messageDeletedDetails object
Questo oggetto contiene dettagli su un messaggio eliminato da un moderatore della chat o dal proprietario del canale della trasmissione dal vivo. È presente solo se il tipo di messaggio è messageDeletedEvent.
snippet.messageDeletedDetails.deletedMessageId string
L'ID che identifica in modo univoco il messaggio eliminato. Il valore corrisponde al valore della proprietà id del messaggio di testo originale. Ad esempio, se un textMessageEvent ha un valore di proprietà id pari a 123 e quel messaggio viene successivamente eliminato, il valore snippet.messageDeletedDetails.deletedMessageId sarà 123 per quel messaggio.

Se memorizzi i messaggi di chat nella cache dopo averli recuperati, utilizza il valore di questa proprietà per identificare il messaggio che non deve più essere visualizzato.
snippet.userBannedDetails object
Questo oggetto contiene i dettagli relativi a un utente che è stato escluso dalla chat. Contiene anche i dettagli dell'esclusione stessa. Gli utenti possono essere esclusi temporaneamente o definitivamente da una chat.
snippet.userBannedDetails.bannedUserDetails object
Questo oggetto contiene informazioni sull'utente escluso.
snippet.userBannedDetails.bannedUserDetails.channelId string
L'ID del canale YouTube dell'utente escluso.
snippet.userBannedDetails.bannedUserDetails.channelUrl string
L'URL del canale YouTube dell'utente escluso.
snippet.userBannedDetails.bannedUserDetails.displayName string
Il nome visualizzato del canale YouTube dell'utente escluso.
snippet.userBannedDetails.bannedUserDetails.profileImageUrl string
L'avatar del canale YouTube dell'utente escluso.
snippet.userBannedDetails.banType string
Il tipo di esclusione. I valori validi per questa proprietà sono:
  • permanente
  • temporanea
snippet.userBannedDetails.banDurationSeconds unsigned long
La durata dell'esclusione. Questa proprietà è presente solo se il valore della proprietà snippet.userBannedDetails.banType è temporary.
snippet.memberMilestoneChatDetails object
Questo oggetto contiene dettagli su un evento di fedeltà al canale. È presente solo se il tipo di messaggio è memberMilestoneChatEvent.
snippet.memberMilestoneChatDetails.userComment string
Il commento aggiunto dall'abbonato a questo messaggio di fedeltà al canale. Questo campo è vuoto per i messaggi senza un commento da parte del membro.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
Il numero totale di mesi (arrotondato per eccesso) in cui lo spettatore è abbonato a questo messaggio di fedeltà al canale. Si tratta dello stesso numero di mesi che viene mostrato agli utenti di YouTube.
snippet.memberMilestoneChatDetails.memberLevelName string
Il nome del livello a cui lo spettatore è abbonato. I nomi dei livelli sono definiti dal canale YouTube che offre l'abbonamento. In alcuni casi, questo campo non viene compilato.
snippet.newSponsorDetails object
Questo oggetto contiene dettagli sull'evento Annuncio di nuovi membri che è impostato solo se il tipo è newSponsorEvent. Tieni presente che "abbonato" è il nuovo termine di "sponsor".
snippet.newSponsorDetails.memberLevelName string
Il nome del livello a cui lo spettatore è abbonato. I nomi dei livelli sono definiti dal canale YouTube che offre l'abbonamento. In alcuni casi, questo campo non viene compilato.
snippet.newSponsorDetails.isUpgrade bool
Indica se il visualizzatore 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 object
Questo oggetto contiene dettagli su un evento Superchat. È presente solo se il tipo di messaggio è superChatEvent.
snippet.superChatDetails.amountMicros unsigned long
L'importo di acquisto, in micro della valuta di acquisto. Ad esempio, se l'importo di acquisto è di un dollaro, il valore della proprietà snippet.amountMicros è 1000000.
snippet.superChatDetails.currency string
La valuta in cui è stato effettuato l'acquisto. Il valore è un codice valuta ISO 4217.
snippet.superChatDetails.amountDisplayString string
Una stringa, come $1.00, che contiene l'importo e la valuta di acquisto. La stringa deve essere mostrata all'utente.
snippet.superChatDetails.userComment string
Il commento aggiunto dall'utente a questo evento Superchat.
snippet.superChatDetails.tier unsigned integer
Il livello per il 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 dal vivo, la lunghezza massima del messaggio e la quantità di tempo in cui il messaggio viene messo in primo piano nel riquadro di aggiornamento.

I livelli di Superchat sono documentati nel Centro assistenza YouTube. Consulta la sezione espandibile dedicata ai dettagli dell'acquisto di messaggi Superchat. In questo elenco, il livello con l'importo di acquisto più basso è il livello 1, il livello più basso successivo è il livello 2 e così via.
snippet.superStickerDetails object
Questo oggetto contiene dettagli su un evento Super Sticker. È presente solo se il tipo di messaggio è superStickerEvent.
snippet.superStickerDetails.superStickerMetadata object
Dettagli sul Super Sticker.
snippet.superStickerDetails.superStickerMetadata.stickerId string
Un ID univoco che identifica l'immagine dell'adesivo. Tieni presente che l'immagine viene mostrata nel messaggio Super Sticker solo quando gli utenti visualizzano la finestra della chat su YouTube. Tuttavia, l'URL dell'immagine non è disponibile tramite l'API. Solo come riferimento, in questo file CSV puoi trovare gli ID dei adesivi e i Super Sticker.
snippet.superStickerDetails.superStickerMetadata.altText string
Una 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 desiderata per il testo.
snippet.superStickerDetails.superStickerMetadata.language string
La lingua del valore della proprietà snippet.superStickerDetails.superStickerMetadata.altText.
snippet.superStickerDetails.amountMicros unsigned long
L'importo di acquisto, in micro della valuta di acquisto. Ad esempio, se l'importo di acquisto è di un dollaro, il valore della proprietà snippet.amountMicros è 1000000.
snippet.superStickerDetails.currency string
La valuta in cui è stato effettuato l'acquisto. Il valore è un codice valuta ISO 4217.
snippet.superStickerDetails.amountDisplayString string
Una stringa, come $1.00, che contiene l'importo e la valuta di acquisto. La stringa deve essere mostrata all'utente.
snippet.superStickerDetails.tier unsigned integer
Il livello per il 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 mettere in evidenza il messaggio nell'interfaccia utente della chat dal vivo, la lunghezza massima del messaggio e il tempo durante il quale il messaggio viene messo in primo piano nel riquadro di aggiornamento.

I livelli di Superchat, che coprono anche i Super Sticker, sono documentati nel Centro assistenza YouTube. Consulta la sezione espandibile dedicata ai dettagli dell'acquisto di messaggi Superchat. In questo elenco, il livello con l'importo di acquisto più basso è il livello 1, il livello più basso successivo è il livello 2 e così via.
snippet.membershipGiftingDetails object
Questo oggetto contiene dettagli su un evento Regala un abbonamento. È presente solo se message type è membershipGiftingEvent.
snippet.membershipGiftingDetails.giftMembershipsCount integer
Il numero di abbonamenti regalo acquistati dall'utente.
snippet.membershipGiftingDetails.giftMembershipsLevelName string
Il nome del Livello degli abbonamenti regalo acquistati dall'utente. I nomi dei livelli sono definiti dal canale YouTube che offre l'abbonamento. In alcuni casi, questo campo non viene compilato.
snippet.giftMembershipReceivedDetails object
Questo oggetto contiene i dettagli di un evento Abbonamento regalo ricevuto. È presente solo se message type è giftMembershipReceivedEvent.
snippet.giftMembershipReceivedDetails.memberLevelName string
Il nome del livello a cui lo spettatore è abbonato. Il valore corrisponde al snippet.membershipGiftingDetails.giftMembershipsLevelName del messaggio associato alla Regala un abbonamento. I nomi dei livelli sono definiti dal canale YouTube che offre l'abbonamento. In alcuni casi, questo campo non viene compilato.
snippet.giftMembershipReceivedDetails.gifterChannelId string
L'ID dell'utente che ha effettuato l'acquisto dell'acquisto di un abbonamento. Il valore corrisponde al snippet.authorChannelId del messaggio associato alla Regala un abbonamento.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
L'ID del messaggio relativo alla donazione di un abbonamento correlato all'abbonamento regalo. Questo ID farà sempre riferimento a un messaggio il cui type è membershipGiftingEvent.
authorDetails object
L'oggetto authorDetails contiene ulteriori dettagli sull'utente che ha pubblicato il messaggio.
authorDetails.channelId string
ID canale YouTube dell'autore.
authorDetails.channelUrl string
L'URL del canale YouTube dell'autore.
authorDetails.displayName string
Il nome visualizzato del canale YouTube dell'autore.
authorDetails.profileImageUrl string
L'URL dell'avatar del canale YouTube dell'autore.
authorDetails.isVerified boolean
Questo valore indica se l'identità dell'autore è stata verificata da YouTube.
authorDetails.isChatOwner boolean
Questo valore indica se l'autore è il proprietario della chat dal vivo.
authorDetails.isChatSponsor boolean
Questo valore indica se l'autore è uno sponsor della chat dal vivo.
authorDetails.isChatModerator boolean
Questo valore indica se l'autore è un moderatore della chat dal vivo.