Um recurso liveChatMessage representa uma mensagem de chat em um chat ao vivo do YouTube. O recurso pode conter detalhes sobre vários tipos de mensagens, incluindo uma mensagem de texto recém-postada ou um evento de financiamento por fãs.
O chat ao vivo é ativado por padrão para transmissões ao vivo e fica disponível enquanto o evento está ativo. Depois que o evento termina, o chat ao vivo fica indisponível.
Métodos
A API é compatível com os seguintes métodos para recursos liveChatMessages:
- list
- Lista as mensagens do chat ao vivo de um chat específico. Faça um teste agora.
- streamList
- Ativa uma conexão de streaming do servidor para receber mensagens de chat ao vivo de um chat específico com baixa latência. Faça um teste agora.
- inserir
- Adiciona uma mensagem ou uma enquete a um chat ao vivo. Faça um teste agora.
- transition
- Faz a transição do estado de uma mensagem publicada. Faça um teste agora.
- delete
- Exclui uma mensagem de chat. A solicitação de API precisa ser autorizada pelo proprietário do canal ou por um moderador do chat ao vivo. Faça um teste agora.
Representação de recurso
A estrutura JSON a seguir mostra o formato de um recurso 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
},
}Propriedades
A tabela a seguir define as propriedades que aparecem neste recurso:
| Propriedades | |
|---|---|
kind |
stringIdentifica o tipo do recurso da API. O valor será youtube#liveChatMessage. |
etag |
etagA ETag deste recurso. |
id |
stringO ID que o YouTube atribui para identificar exclusivamente a mensagem. |
snippet |
objectO objeto snippet contém detalhes principais sobre a mensagem de chat. |
snippet.type |
stringO tipo da mensagem. Essa propriedade está sempre presente, e o valor dela determina quais campos estão presentes no recurso. Os valores válidos para essa propriedade são:
|
snippet.liveChatId |
stringO ID que identifica exclusivamente o chat ao vivo associado à mensagem. O ID do chat ao vivo associado a uma transmissão é retornado na propriedade snippet.liveChatId do recurso liveBroadcast. |
snippet.authorChannelId |
stringO ID do usuário que criou a mensagem. Esse campo só é preenchido para os seguintes tipos de mensagem:
|
snippet.publishedAt |
datetimeA data e a hora em que a mensagem foi publicada originalmente. O valor é especificado no formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
snippet.hasDisplayContent |
booleanIndica se a mensagem tem conteúdo de exibição que deve ser mostrado aos usuários. |
snippet.displayMessage |
stringContém uma string que é exibida aos usuários. Esse campo não aparece se o tipo de mensagem for chatEndedEvent ou tombstone. |
snippet.fanFundingEventDetails |
objectObservação: esse objeto e as propriedades filho dele foram descontinuados. Desde 28 de fevereiro de 2017, os recursos liveChatMessage não retornam mais detalhes sobre eventos de financiamento pelos fãs.Esse objeto contém detalhes sobre o evento de financiamento. Ele só está presente se o tipo de mensagem for fanFundingEvent. |
snippet.fanFundingEventDetails.amountMicros |
unsigned longObservação: essa propriedade foi descontinuada. O valor do fundo. |
snippet.fanFundingEventDetails.currency |
stringObservação: essa propriedade foi descontinuada. A moeda em que o fundo foi feito. |
snippet.fanFundingEventDetails.amountDisplayString |
stringObservação: essa propriedade foi descontinuada. Uma string renderizada que mostra o valor e a moeda do fundo ao usuário. |
snippet.fanFundingEventDetails.userComment |
stringObservação: essa propriedade foi descontinuada. O comentário adicionado pelo usuário a esse evento de financiamento por fãs. |
snippet.textMessageDetails |
objectEsse objeto contém detalhes sobre a mensagem de texto. Ele só está presente se o tipo de mensagem for textMessageEvent. |
snippet.textMessageDetails.messageText |
stringA mensagem do usuário. |
snippet.messageDeletedDetails |
objectEsse objeto contém detalhes sobre uma mensagem excluída por um moderador do chat ou pelo proprietário do canal da transmissão ao vivo. Ele só está presente se o tipo de mensagem for messageDeletedEvent. |
snippet.messageDeletedDetails.deletedMessageId |
stringO ID que identifica exclusivamente a mensagem excluída. O valor é o mesmo da propriedade id da mensagem de texto original. Por exemplo, se uma textMessageEvent tiver um valor de propriedade id de 123 e essa mensagem for excluída posteriormente, o valor de snippet.messageDeletedDetails.deletedMessageId será 123 para essa mensagem.Se você armazenar em cache as mensagens de chat depois de recuperá-las, use o valor dessa propriedade para identificar a mensagem que não deve mais ser exibida. |
snippet.userBannedDetails |
objectEsse objeto contém detalhes sobre um usuário que foi banido do chat. Ele também contém detalhes sobre a proibição. Os usuários podem ser banidos de um chat de forma permanente ou temporária. |
snippet.userBannedDetails.bannedUserDetails |
objectEsse objeto contém informações sobre o usuário banido. |
snippet.userBannedDetails.bannedUserDetails.channelId |
stringO ID do canal do YouTube do usuário banido. |
snippet.userBannedDetails.bannedUserDetails.channelUrl |
stringO URL do canal do YouTube do usuário banido. |
snippet.userBannedDetails.bannedUserDetails.displayName |
stringO nome de exibição do canal do YouTube do usuário banido. |
snippet.userBannedDetails.bannedUserDetails.profileImageUrl |
stringO avatar do canal do YouTube do usuário banido. |
snippet.userBannedDetails.banType |
stringO tipo de proibição. Os valores válidos para essa propriedade são:
|
snippet.userBannedDetails.banDurationSeconds |
unsigned longA duração da proibição. Essa propriedade só aparece se o valor da propriedade snippet.userBannedDetails.banType for temporary. |
snippet.memberMilestoneChatDetails |
objectEsse objeto contém detalhes sobre um evento de conquista de membro. Ele só está presente se o tipo de mensagem for memberMilestoneChatEvent. |
snippet.memberMilestoneChatDetails.userComment |
stringO comentário adicionado pelo membro a esta Mensagem prêmio para membros. Esse campo fica vazio para mensagens sem um comentário do membro. |
snippet.memberMilestoneChatDetails.memberMonth |
unsigned integerO número total de meses (arredondado para cima) em que o espectador foi membro e ganhou a Mensagem prêmio para membros. Esse é o mesmo número de meses exibido para os usuários do YouTube. |
snippet.memberMilestoneChatDetails.memberLevelName |
stringO nome do nível em que o espectador é membro. Os nomes dos níveis são definidos pelo canal do YouTube que oferece o clube. Em algumas situações, esse campo não é preenchido. |
snippet.newSponsorDetails |
objectEsse objeto contém detalhes sobre o evento de anúncio de novo membro. Isso só será definido se o tipo for newSponsorEvent. "Membro" é o termo usado para "patrocinador".
|
snippet.newSponsorDetails.memberLevelName |
stringO nome do nível em que o espectador é membro. Os nomes dos níveis são definidos pelo canal do YouTube que oferece o clube. Em algumas situações, esse campo não é preenchido. |
snippet.newSponsorDetails.isUpgrade |
boolIndica se o espectador acabou de fazer upgrade de um nível inferior. Para espectadores que não eram membros no momento da compra, o valor do campo é false.
|
snippet.superChatDetails |
objectEsse objeto contém detalhes sobre um evento do Super Chat. Ele só está presente se o tipo de mensagem for superChatEvent. |
snippet.superChatDetails.amountMicros |
unsigned longO valor da compra, em micros da moeda de compra. Por exemplo, se o valor da compra for de um dólar, o valor da propriedade snippet.amountMicros será 1000000. |
snippet.superChatDetails.currency |
stringA moeda em que a compra foi feita. O valor é um código de moeda ISO 4217. |
snippet.superChatDetails.amountDisplayString |
stringUma string, como $1.00, que contém o valor e a moeda da compra. A string deve ser exibida para o usuário. |
snippet.superChatDetails.userComment |
stringO comentário adicionado pelo usuário a esse evento do Super Chat. |
snippet.superChatDetails.tier |
unsigned integerO nível da mensagem paga. Em um recurso superChatEvent, a propriedade snippet.messageType contém esse valor.O nível é baseado no valor gasto para comprar a mensagem. Ele também determina a cor usada para destacar a mensagem na interface do chat ao vivo, o comprimento máximo da mensagem e o tempo que ela fica fixada no ticker. Os níveis do Super Chat estão documentados na Central de Ajuda do YouTube. (Consulte a seção expansível sobre detalhes da compra do Super Chat.) Nessa lista, a camada com o menor valor de compra é a 1, o próximo menor valor é a camada 2 e assim por diante. |
snippet.superStickerDetails |
objectEsse objeto contém detalhes sobre um evento de Super Sticker. Ele só está presente se o tipo de mensagem for superStickerEvent. |
snippet.superStickerDetails.superStickerMetadata |
objectDetalhes sobre o Super Sticker. |
snippet.superStickerDetails.superStickerMetadata.stickerId |
stringUm ID exclusivo que identifica a imagem do adesivo. A imagem só aparece como parte da mensagem do Supersticker quando os usuários abrem a janela de chat no YouTube. No entanto, o URL da imagem não está disponível usando a API. Para referência, confira neste arquivo CSV (em inglês) quais IDs de adesivos estão relacionados a quais Superadesivos. |
snippet.superStickerDetails.superStickerMetadata.altText |
stringUma string de texto que descreve o adesivo. O campo snippet.superStickerDetails.superStickerMetadata.language identifica o idioma do texto. Ao chamar o método liveChatMessages.list, defina o valor do parâmetro hl como o idioma escolhido para o texto. |
snippet.superStickerDetails.superStickerMetadata.language |
stringO idioma do valor da propriedade snippet.superStickerDetails.superStickerMetadata.altText. |
snippet.superStickerDetails.amountMicros |
unsigned longO valor da compra, em micros da moeda de compra. Por exemplo, se o valor da compra for de um dólar, o valor da propriedade snippet.amountMicros será 1000000. |
snippet.superStickerDetails.currency |
stringA moeda em que a compra foi feita. O valor é um código de moeda ISO 4217. |
snippet.superStickerDetails.amountDisplayString |
stringUma string, como $1.00, que contém o valor e a moeda da compra. A string deve ser exibida para o usuário. |
snippet.superStickerDetails.tier |
unsigned integerO nível da mensagem paga. Em um recurso superChatEvent, a propriedade snippet.messageType contém esse valor.O nível é baseado no valor gasto para comprar a mensagem. Ele também determina a cor usada para destacar a mensagem na interface do chat ao vivo, o tamanho máximo da mensagem e o tempo que ela fica fixada no ticker. Os níveis do Super Chat, que também incluem os Super Stickers, estão documentados na Central de Ajuda do YouTube. (Consulte a seção expansível sobre detalhes da compra do Super Chat.) Nessa lista, a camada com o menor valor de compra é a 1, o próximo menor valor é a camada 2 e assim por diante. |
snippet.pollDetails |
objectEsse objeto contém detalhes sobre um evento de pesquisa. Ele só está presente se o tipo de mensagem for pollEvent. |
snippet.pollDetails.metadata |
objectDetalhes sobre o evento de pesquisa. |
snippet.pollDetails.metadata.options |
objectAs opções na enquete ao vivo. |
snippet.pollDetails.metadata.options.optionText |
stringO texto da opção de enquete ao vivo. |
snippet.pollDetails.metadata.options.tally |
stringA contagem da opção de enquete ao vivo. A contagem só aparece se a solicitação de API for autorizada pelo proprietário do canal. |
snippet.pollDetails.metadata.questionText |
stringO texto da pergunta da enquete em tempo real. |
snippet.pollDetails.metadata.status |
enumO status do evento de enquete ao vivo. Os valores válidos para essa propriedade são:
|
snippet.membershipGiftingDetails |
objectEsse objeto contém detalhes sobre um evento de presente de assinatura. Ele só está presente se o message type for membershipGiftingEvent. |
snippet.membershipGiftingDetails.giftMembershipsCount |
integerO número de assinaturas de presente compradas pelo usuário. |
snippet.membershipGiftingDetails.giftMembershipsLevelName |
stringO nome do nível das assinaturas de presente compradas pelo usuário. Os nomes dos níveis são definidos pelo canal do YouTube que oferece o clube. Em algumas situações, esse campo não é preenchido. |
snippet.giftMembershipReceivedDetails |
objectEsse objeto contém detalhes sobre um evento de assinatura recebida como presente. Ele só está presente se o message type for giftMembershipReceivedEvent. |
snippet.giftMembershipReceivedDetails.memberLevelName |
stringO nome do nível em que o espectador é membro. Isso corresponde ao snippet.membershipGiftingDetails.giftMembershipsLevelName da mensagem associada de presente de assinatura. Os nomes dos níveis são definidos pelo canal do YouTube que oferece o clube. Em algumas situações, esse campo não é preenchido. |
snippet.giftMembershipReceivedDetails.gifterChannelId |
stringO ID do usuário que fez a compra do presente de assinatura. Isso corresponde ao snippet.authorChannelId da mensagem associada de presente de assinatura. |
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId |
stringO ID da mensagem de presente de assinatura relacionada a esta assinatura presenteada. Esse ID sempre se refere a uma mensagem cujo type é membershipGiftingEvent. |
authorDetails |
objectO objeto authorDetails contém mais detalhes sobre o usuário que postou essa mensagem. |
authorDetails.channelId |
stringO ID do canal do YouTube do autor. |
authorDetails.channelUrl |
stringO URL do canal do YouTube do autor. |
authorDetails.displayName |
stringO nome de exibição do canal do YouTube do autor. |
authorDetails.profileImageUrl |
stringO URL do avatar do canal do YouTube do autor. |
authorDetails.isVerified |
booleanEsse valor indica se a identidade do autor foi verificada pelo YouTube. |
authorDetails.isChatOwner |
booleanEsse valor indica se o autor é o proprietário do chat em tempo real. |
authorDetails.isChatSponsor |
booleanEsse valor indica se o autor é um patrocinador do chat ao vivo. |
authorDetails.isChatModerator |
booleanEsse valor indica se o autor é um moderador do chat ao vivo. |