Pular para o conteúdo
Decoding Chat API

Eventos do Gateway

Um Dispatch relata uma alteração ou resultado de comando através do Gateway. Ele tem opcode 0, um nome de evento e um payload.

CampoTipoDescrição
opintegerValor 0
tstringNome do evento em maiúsculas
sintegerSequência de sessão não negativa
danyPayload definido para o evento nomeado
{
"op": 0,
"t": "MESSAGE_CREATE",
"s": 17,
"d": { }
}

Ready estabelece a sequência 1. Dispatches ao vivo a avançam em um. Dispatches reproduzidos mantêm sua sequência original e podem ter lacunas. Resumed tem a sequência atual da sessão sem avançá-la. O próximo Dispatch ao vivo tem essa sequência mais um. A sequência é local a uma sessão do Gateway e não ordena nada entre shards ou operações HTTP.

A Filtragem de eventos define a entrega por disponibilidade da guilda, visibilidade do canal, permissões e configurações de sessão. Dispatches com escopo de conta passam apenas pelos filtros no nível da sessão, que são o filtro de shard e a lista ignored_events.

A maioria dos Dispatches com escopo de guilda tem uma string guild_id. Guild Create e Guild Sync identificam a guilda como id, e o mesmo faz todo Guild Delete que não seja o que a própria guilda envia quando é deletada. Guild Counts Update e Channel Member Counts Update não possuem um guild_id de nível superior, e cada entrada em seu array counts tem o seu próprio.

A sessão de origem é excluída de um Dispatch apenas para Message Reaction Add e Message Reaction Remove em um canal de guilda, e apenas quando a requisição forneceu um session_id. Esse campo é removido do payload. O mesmo campo em uma reação de mensagem direta ou mensagem direta em grupo é encaminhado para cada destinatário inalterado e não exclui ninguém. O ator que emite qualquer outra mutação recebe o Dispatch resultante como qualquer outra sessão elegível.

Um Dispatch é armazenado em buffer para replay de Resume, a menos que seja Guild Sync, Guild Member List Update ou Guild Members Chunk. Esses são entregues ao vivo e nunca retidos. Um único Dispatch superdimensionado é entregue, mas não retido, como descreve Limites e rate limits. Ready e a rajada de guildas que o segue para uma sessão de bot também são enviados fora do buffer de replay. Os eventos iniciais Call Create são retidos como qualquer outro Dispatch e são reproduzidos no Resume.

EventoDescriçãoEscopo
ReadyO estado inicial da sessão após um Identify bem-sucedidoCiclo de vida da sessão
ResumedO replay retido é concluído após um Resume bem-sucedidoCiclo de vida da sessão
Sessions ReplaceO conjunto de presença de sessão ao vivo da conta é substituídoUsuário atual
Auth Session ChangeA sessão de autenticação da conta é rotacionadaUsuário atual
Rate LimitedUma requisição de membro é recusada por seu orçamentoResposta de comando
User UpdateO registro da conta do usuário atual mudaUsuário atual
User Settings UpdateAs configurações gerais da conta do usuário atual mudamUsuário atual
User Guild Settings UpdateUm registro de notificação de guilda mudaUsuário atual
User Note UpdateO usuário atual escreve ou apaga uma nota privadaUsuário atual
User Pinned DMs UpdateO conjunto de canais privados fixados do usuário atual é substituídoUsuário atual
User Connections UpdateO conjunto de conexões externas do usuário atual é substituídoUsuário atual
WebAuthn Credentials UpdateO conjunto de credenciais WebAuthn do usuário atual é substituídoUsuário atual
Relationship AddO usuário atual ganha um relacionamentoUsuário atual
Relationship UpdateUm dos relacionamentos do usuário atual mudaUsuário atual
Relationship RemoveO usuário atual perde um relacionamentoUsuário atual
Saved Message CreateO usuário atual salva uma mensagemUsuário atual
Saved Message DeleteO usuário atual remove o salvamento de uma mensagemUsuário atual
Recent Mention DeleteO usuário atual remove uma menção recenteUsuário atual
Favorite Meme CreateO usuário atual salva um memeUsuário atual
Favorite Meme UpdateUm dos memes do usuário atual mudaUsuário atual
Favorite Meme DeleteO usuário atual exclui um memeUsuário atual
Guild CreateUma guilda fica disponível para a sessãoConexão com a guilda
Guild SyncUma sessão inscrita recebe o estado atual completo da guilda novamenteConexão com a guilda
Guild UpdateA configuração de uma guilda mudaConexão com a guilda
Guild DeleteUma guilda sai da visibilidade da sessão ou fica indisponívelConexão com a guilda
Guild Role CreateUm cargo é criado em uma guildaConexão com a guilda
Guild Role UpdateExatamente um registro de cargo mudaConexão com a guilda
Guild Role Update BulkUma operação altera vários registros de cargos juntosConexão com a guilda
Guild Role DeleteUm cargo é deletado de uma guildaConexão com a guilda
Guild Emojis UpdateOs emojis de uma guilda mudamConexão com a guilda
Guild Stickers UpdateOs adesivos de uma guilda mudamConexão com a guilda
Channel CreateUm canal se torna visível para a sessãoVisibilidade do canal
Channel UpdateUm canal visível mudaVisibilidade do canal
Channel Update BulkUma operação altera vários canais juntosVisibilidade do canal
Channel DeleteUm canal sai da visibilidade da sessãoVisibilidade do canal
Channel Recipient AddUm usuário entra em uma mensagem direta em grupo à qual a sessão pertenceCanal privado
Channel Recipient RemoveUm usuário sai de uma mensagem direta em grupo à qual a sessão pertenceCanal privado
Webhooks UpdateO conjunto de webhooks de um canal de guilda visível mudaVisibilidade do canal
Invite CreateUm convite é criadoAudiência do convite
Invite DeleteUm convite é deletadoAudiência do convite
Guild Member AddUm usuário se torna membro de uma guilda conectadaConexão com a guilda
Guild Member UpdateO estado da guilda ou a representação de usuário público de um membro mudaConexão com a guilda
Guild Member RemoveUm usuário deixa de ser membro de uma guilda conectadaConexão com a guilda
Guild Members ChunkUm resultado de membro limitado responde a Request Guild MembersResposta de comando
Guild Member List UpdateUma lista de membros inscrita ressincroniza os intervalos do assinanteInscrição em lista de membros
Guild Audit Log Entry CreateUma entrada de log de auditoria é escrita em uma guildaDetentores de VIEW_AUDIT_LOG
Guild Ban AddUm banimento de guilda é criadoConexão com a guilda
Guild Ban RemoveUm banimento de guilda é removidoConexão com a guilda
Presence UpdateUma presença visível mudaInscrição de presença
Presence Update BulkUma guilda em recuperação entrega suas presenças visíveis em conjuntoConexão com a guilda
Passive UpdatesValores last_message_id de canais ou estados de voz mudaram para uma sessão passivaSessão passiva
Message CreateUma mensagem visível é criadaVisibilidade do canal
Message UpdateUma mensagem visível muda e é republicada na íntegraAcesso à mensagem
Message DeleteUma mensagem visível é deletadaAcesso à mensagem
Message Delete BulkVárias mensagens em um canal são deletadas juntasVisibilidade do canal
Message ACKO estado de leitura do usuário atual avança para um canalUsuário atual
Message Reaction AddUm usuário adiciona uma reação a uma mensagemAcesso à mensagem
Message Reaction Add ManyUma sessão com debounce recebe várias adições de reação como um único eventoAcesso à mensagem
Message Reaction RemoveA reação de um usuário é removida de uma mensagemAcesso à mensagem
Message Reaction Remove AllTodas as reações são removidas de uma mensagem de uma só vezAcesso à mensagem
Message Reaction Remove EmojiTodas as reações usando um emoji são removidas de uma mensagemAcesso à mensagem
Typing StartUm usuário visível começa a digitar em um canalVisibilidade do canal
Channel Pins UpdateO horário do pin mais recente de um canal mudaVisibilidade do canal
Channel Pins ACKO usuário atual reconhece os pins de um canalUsuário atual
Voice State UpdateO estado de voz de um participante de guilda ou chamada mudaVisibilidade do canal
Voice Server UpdateA sessão recebe ou substitui sua própria concessão de vozSessão atual
Entrance Sound PlayO som de entrada de um participante toca em um canal de vozCanal de voz
Call CreateUma chamada de canal privado começa ou se torna visívelDestinatário da chamada
Call UpdateO conjunto de chamadas, a lista de participantes ou a região de uma chamada mudaDestinatário da chamada
Call DeleteUma chamada termina ou se torna indisponívelDestinatário da chamada
Guild Counts UpdateContagens de membros e online são retornadas para guildas conectadasResposta de comando
Channel Member Counts UpdateContagens de membros e online por canal são retornadas para uma guildaResposta de comando

O estado inicial da sessão. Enviado uma vez após um Identify bem-sucedido, sempre com sequência 1.

CampoTipoDescrição
session_idstringIdentificador para Resume
versionintegerVersão da API do Gateway que a conexão negociou, sempre 1
userobjeto userA conta autenticada em sua representação privada
guilds1array[objeto guild ready]As guildas da sessão
private_channelsarray[objeto channel]Canais de mensagens diretas e mensagens diretas em grupo
relationships2array[objeto relationship]Os relacionamentos da conta
presences3array[objeto presence]Presenças visíveis no momento da conexão
users4array[objeto partial user]Usuários referenciados pelo payload
sessionsarray[objeto session presence]Outras sessões ao vivo da conta
read_statesarray[objeto read state]Estado de leitura por canal
user_settings?objeto user settingsConfigurações gerais da conta
user_guild_settingsarray[objeto user guild settings]Configurações de notificação por guilda
notesmap[snowflake, string]Notas privadas indexadas por ID de usuário
pinned_dmsarray[snowflake]IDs de canais privados fixados
favorite_memesarray[objeto meme]Memes salvos
webauthn_credentialsarray[objeto WebAuthn credential]Credenciais WebAuthn registradas
rtc_regionsarray[objeto RTC region]Regiões de voz, ordenadas pela mais próxima primeiro
country_codestringPaís resolvido a partir do endereço de conexão, US quando o endereço não resolve para nenhum
latitude?stringLatitude resolvida a partir do endereço de conexão, renderizada como uma string decimal
longitude?stringLongitude resolvida a partir do endereço de conexão, renderizada como uma string decimal
auth_session_id_hash?stringHash Base64url identificando a sessão de autenticação
shard?array[integer]O par [shard_id, shard_count] aceito, presente apenas quando Identify forneceu um
_timings?objectDetalhamento de tempo no lado do HTTP, presente apenas para uma conta de equipe
_timings_gw?objectDetalhamento de tempo no lado do Gateway, presente apenas para uma conta de equipe

1 Em uma sessão de bot, cada entrada é uma guilda indisponível apenas com id e unavailable: true. A rajada descrita abaixo envia então um Guild Create com o estado completo de cada guilda disponível e um Guild Delete para cada indisponível

2 Cada entrada tem seu campo user removido e as contas removidas aparecem em users em vez disso, de modo que um cliente resolve um relacionamento através do id da entrada

3 Uma sessão de bot sempre recebe um array vazio aqui

4 Coletado a partir dos relacionamentos da conta, os destinatários de seus canais privados e os membros em guilds, deduplicados por ID de conta. Uma sessão de bot sempre recebe um array vazio aqui

Ready é enviado fora do buffer de replay, então um Resume nunca o reproduz.

Uma sessão de bot recebe um Guild Create por guilda disponível imediatamente após Ready, e um Guild Delete por guilda indisponível. Juntos, eles resolvem as entradas do array guilds. Esses Dispatches também são enviados fora do buffer de replay.

Logo após o Ready, cada sessão recebe um Call Create para cada um de seus canais privados que tem uma chamada ativa.

A mesma estrutura aparece em Ready, Guild Create e Guild Sync.

CampoTipoDescrição
idsnowflakeID da guilda
propertiesobjeto guildRegistro da guilda sem seus cargos, canais, emojis, adesivos ou membros
rolesarray[objeto guild role]Cada cargo na guilda
channelsarray[objeto channel]Canais que a sessão pode ver
emojisarray[objeto guild emoji]Cada emoji na guilda
stickersarray[objeto guild sticker]Cada adesivo na guilda
members1array[objeto guild member]Os membros de que a sessão precisa imediatamente
member_countintegerContagem total de membros
online_count2integerContagem de membros online
presences3array[objeto presence]Sempre um array vazio
voice_statesarray[objeto voice state]Estados de voz em canais que a sessão pode ver
joined_at?ISO8601 timestampQuando a conta se juntou à guilda, null quando a conta não é membro
unavailable?booleanSe a guilda está indisponível
unavailable_hidden?booleanSe uma guilda indisponível está oculta do cliente

1 O próprio objeto de membro da sessão mais o objeto de membro de cada participante nomeado por voice_states, e nada mais. Um cliente que precise do restante da lista de membros a solicita com Request Guild Members ou se inscreve em uma lista de membros através de Lazy Request

2 Conta os membros que mantêm uma sessão Gateway ao vivo e publicam um status que não seja offline ou invisible. Cada destinatário recebe o mesmo número em toda a guilda. Guild Counts Update relata uma contagem por espectador

3 Presenças de guilda chegam como Dispatches separados Presence Update e Presence Update Bulk

Uma guilda indisponível é reduzida a id e unavailable: true, mais unavailable_hidden: true quando a guilda está oculta. Ela não tem nenhum dos outros campos. Cada entrada no array guilds de um Ready de uma sessão de bot tem essa forma, apenas com id e unavailable: true.

Dentro de Ready e dentro da rajada Guild Create que um bot recebe imediatamente após Ready, cada entrada em members tem seu user substituído por {"id": "..."}. O Ready de uma sessão de bot não tem members nenhum, porque cada uma de suas guildas é uma guilda indisponível, então um bot vê a forma reduzida apenas na rajada. Em uma sessão de usuário, as contas removidas aparecem no array users do payload Ready. O array users de um bot é vazio, então um bot puxa essas contas com Request Guild Members. Um Guild Create enviado posteriormente na sessão, e cada Guild Sync, têm os membros com user intactos.

CampoTipoDescrição
session_idstringIdentificador da sessão, ou o literal all para a entrada agregada
statusstringonline, idle, dnd, invisible ou offline
afkbooleanSe a sessão está ausente
mobilebooleanSe a sessão é mobile

A primeira entrada sempre tem session_id: "all" e o status combinado da conta, que é o primeiro de dnd, online, idle e invisible que qualquer uma de suas sessões tem, ou offline quando nenhuma tem.

CampoTipoDescrição
idstringID da credencial
namestringNome da credencial
created_atISO8601 timestampQuando a credencial foi registrada
last_used_at?ISO8601 timestampQuando a credencial foi usada pela última vez
CampoTipoDescrição
idstringID da região
namestringNome da região legível por humanos
emojistringEmoji da região

O array sempre começa com uma entrada sintética cujo id é automatic, name é Automatic e emoji é o globo. Escolher essa entrada deixa a região a cargo do servidor. Todas as outras entradas são uma região que a conta pode selecionar, ordenadas pela distância a partir da latitude e longitude nas propriedades do Identify. O Decoding Chat ordena pela distância apenas quando ambos os valores são analisados como números finitos, caso contrário, ordena pelo ID da região.

Enviado após um Resume bem-sucedido ter reproduzido todo Dispatch retido acima da sequência fornecida.

CampoTipoDescrição
_timings_gw?objectDetalhamento de tempo no lado do Gateway, presente apenas para uma conta de equipe

O payload é de resto vazio. Resumed tem a sequência atual da sessão em s sem avançá-la, e o próximo Dispatch ao vivo tem essa sequência mais um.

O conjunto de sessões ao vivo da conta mudou. O payload é um array JSON simples de objetos session presence e é sempre o conjunto completo. Um cliente que armazena as sessões as substitui por este array. Ready envia o conjunto inicial como sessions.

A sessão de autenticação da conta foi rotacionada, por exemplo, por uma mudança de senha em outro dispositivo.

CampoTipoDescrição
old_auth_session_id_hashstringHash Base64url da sessão de autenticação que foi substituída
new_auth_session_id_hashstringHash Base64url da sessão de autenticação substituta
new_tokenstringSubstituto para o token que o cliente possui

Cada sessão da conta recebe o evento, incluindo aquela que causou a rotação. Um cliente DEVE usar new_token para toda requisição HTTP posterior e para qualquer Resume ou Identify posterior. Um cliente cujo próprio auth_session_id_hash do Ready é igual a old_auth_session_id_hash DEVE substituí-lo por new_auth_session_id_hash.

Um comando Request Guild Members foi recusado pelo orçamento de lista completa de membros do bot. Entregue apenas à sessão solicitante.

CampoTipoDescrição
opcodeintegerO opcode recusado, que é sempre 8
retry_afternumberSegundos até que a requisição possa ser tentada novamente
metaobjectContexto para a requisição recusada

meta tem guild_id e, quando a requisição nomeou exatamente uma guilda e forneceu um nonce válido, nonce.

Esse orçamento admite uma requisição de membro não filtrada por conta de bot e guilda a cada 30.000 ms, e retry_after é o restante dessa janela em segundos. Toda outra recusa de comando é silenciosa.

O registro da conta do usuário atual foi alterado. O payload é o objeto de usuário completo em sua representação privada.

Assinantes de presença recebem o user atualizado em uma Atualização de Presença, a menos que o status publicado do usuário seja offline.

As configurações da conta do usuário atual foram alteradas. O payload é o objeto de configurações do usuário completo.

O Decoding Chat republica a presença da conta a cada atualização de configurações, independentemente de status ou custom_status terem mudado. Um status offline no payload é tratado como invisible (invisível), e força cada sessão ativa da conta para esse status.

As configurações de notificação de uma guilda foram alteradas. O payload é o objeto de configurações da guilda do usuário completo.

O usuário atual escreveu ou apagou uma nota privada.

CampoTipoDescrição
idsnowflakeUsuário sobre o qual é a nota
notestringTexto da nota, vazio quando apagado

O conjunto de canais privados fixados do usuário atual foi alterado. O payload é um array JSON simples de strings de IDs de canais na ordem fixada e é sempre o conjunto completo. Um cliente que armazena os canais fixados os substitui por este array. Ready envia o conjunto inicial como pinned_dms.

O conjunto de conexões externas do usuário atual foi alterado.

CampoTipoDescrição
connectionsarray[objeto de conexão]Toda conexão que a conta possui

connections é sempre o conjunto completo. Um cliente que armazena as conexões as substitui por este array.

O conjunto de credenciais WebAuthn do usuário atual foi alterado. O payload é um array JSON simples de objetos de credencial WebAuthn e é sempre o conjunto completo. Um cliente que armazena as credenciais as substitui por este array. Ready envia o conjunto inicial como webauthn_credentials.

O usuário atual ganhou um relacionamento. O payload é o objeto de relacionamento completo.

CampoTipoDescrição
idsnowflakeO ID do outro usuário
typeintegerTipo de relacionamento
userobjeto de usuário parcialO outro usuário
since?timestamp ISO8601Quando o relacionamento foi criado, ausente quando o registro não tem timestamp
nickname?stringApelido privado para o outro usuário
share_voice_activitybooleanSe o usuário atual compartilha a atividade de voz com este amigo no painel Ativo Agora
friend_shares_voice_activity1booleanSe o outro usuário compartilha a atividade de voz com o usuário atual

1 Sempre true neste Dispatch, mesmo para uma amizade cujo parceiro tenha o compartilhamento desativado.

Um cliente que precisa do valor real DEVE lê-lo de Listar relacionamentos.

Um relacionamento existente foi alterado. O payload tem a mesma estrutura de Adição de Relacionamento.

friend_shares_voice_activity é a configuração real do parceiro apenas no par de Dispatches que Modificar compartilhamento de atividade de voz envia para ambas as partes de cada amizade. Todas as outras Atualizações de Relacionamento enviam true.

Um relacionamento terminou.

CampoTipoDescrição
idsnowflakeO ID do outro usuário

O usuário atual salvou uma mensagem. O payload é o objeto de mensagem completo como o usuário a vê.

O usuário atual removeu uma mensagem salva.

CampoTipoDescrição
message_idsnowflakeA mensagem que não está mais salva

O usuário atual removeu uma mensagem do feed de menções recentes.

CampoTipoDescrição
message_idsnowflakeA mensagem removida do feed

O usuário atual salvou um meme. O payload é o objeto de meme completo.

Um dos memes do usuário atual foi alterado. O payload é o objeto de meme completo.

O usuário atual excluiu um meme.

CampoTipoDescrição
meme_idsnowflakeO meme excluído

Uma guilda tornou-se disponível para a sessão. O payload é um objeto de guilda pronta.

roles, channels, emojis, stickers e voice_states estão sempre completos. Um cliente que armazena qualquer um deles para a guilda substitui sua lista armazenada pelo novo array. members é uma lista parcial. Um cliente adiciona ou atualiza esses membros e mantém todos os outros membros que já armazena.

Cada sessão recebe Guild Create quando uma guilda se torna disponível após Ready, por exemplo, após ingressar em uma ou após uma guilda indisponível se recuperar. Uma sessão de bot também recebe uma para cada guilda disponível no burst que segue Ready.

O Guild Create de uma sessão de bot tem unavailable: false, a menos que seja o primeiro Guild Create para uma guilda em que o bot ingressou durante a sessão e o Ready não a listou. Esse Dispatch não tem o campo unavailable, mesmo quando um Guild Delete com unavailable: true para a guilda veio antes dele. Uma sessão de usuário nunca recebe o campo no Guild Create.

Uma sessão que solicitou uma sincronização por meio do Lazy Request recebe novamente o estado completo atual da guilda. O payload é um objeto de guilda pronta, e um cliente lida com ele da mesma maneira que o Guild Create.

O Decoding Chat envia uma sincronização quando um Lazy Request alterna a guilda entre ativa e passiva, e quando sync: true nomeia uma guilda que a sessão ainda não sincronizou. Um segundo sync: true para uma guilda já sincronizada não envia nada.

A configuração de uma guilda foi alterada. O payload é o objeto de guilda completo com guild_id adicionado, que repete o id do próprio objeto.

Guild Update é o único Dispatch que uma guilda indisponível envia. Um cliente descobre a partir dele que uma guilda entrou ou saiu do estado indisponível.

Uma guilda saiu da visibilidade da sessão ou tornou-se indisponível.

CampoTipoDescrição
idsnowflakeID da guilda
guild_id?1snowflakeRepete o id
unavailable?booleanVerdadeiro quando a guilda está temporariamente indisponível
unavailable_hidden?booleanVerdadeiro quando uma guilda indisponível está oculta do cliente

1 Presente apenas quando a própria guilda é excluída. O payload possui id sozinho quando a conta sai de uma guilda ou é removida de uma, e id com unavailable no formulário indisponível.

Sem unavailable, a conta não é mais um membro, e um cliente exclui tudo o que armazena para aquela guilda. Com unavailable: true, a guilda está temporariamente inacessível. Um cliente mantém a guilda como uma entrada indisponível até que um posterior Guild Create envie seu estado completo novamente.

Um cargo foi criado em uma guilda.

CampoTipoDescrição
guild_idsnowflakeGuilda à qual o cargo pertence
roleobjeto de cargo de guildaO cargo criado

Exatamente um registro de cargo foi alterado.

CampoTipoDescrição
guild_idsnowflakeGuilda à qual o cargo pertence
roleobjeto de cargo de guildaA representação completa e atualizada do cargo

Uma operação alterou vários cargos juntos, na maioria das vezes uma reordenação.

CampoTipoDescrição
guild_idsnowflakeGuilda à qual os cargos pertencem
rolesarray[objeto de cargo de guilda]Cada cargo alterado em sua representação completa e atualizada

Um cargo foi excluído de uma guilda.

CampoTipoDescrição
guild_idsnowflakeGuilda à qual o cargo pertencia
role_idsnowflakeO cargo excluído

Os emojis de uma guilda foram alterados.

CampoTipoDescrição
guild_idsnowflakeGuilda à qual os emojis pertencem
emojisarray[objeto de emoji de guilda]Cada emoji na guilda

Um cliente que armazena os emojis da guilda os substitui por este array. O Decoding Chat não envia eventos per-emoji de criação, atualização ou exclusão.

Os adesivos de uma guilda foram alterados.

CampoTipoDescrição
guild_idsnowflakeGuilda à qual os adesivos pertencem
stickersarray[objeto de adesivo de guilda]Cada adesivo na guilda

Um cliente que armazena os adesivos da guilda os substitui por este array. O Decoding Chat não envia eventos per-sticker de criação, atualização ou exclusão.

Um canal tornou-se visível para a sessão, seja recém-criado ou recém-permitido. O payload é o objeto de canal completo, com guild_id presente para um canal de guilda.

Um canal visível foi alterado. O payload é o objeto de canal completo.

Uma operação alterou vários canais juntos, na maioria das vezes uma reordenação.

CampoTipoDescrição
guild_idsnowflakeGuilda à qual os canais pertencem
channelsarray[objeto de canal]Cada canal alterado em sua representação completa e atualizada

Cada destinatário vê apenas os canais que pode visualizar. Um resultado vazio não produz Dispatch e não consome número de sequência.

Um canal saiu da visibilidade da sessão, seja excluído ou recém-oculto. O payload é o objeto de canal completo como era antes da mudança.

Os destinatários são as sessões que podiam ver o canal antes de ele ser excluído.

Um usuário ingressou em uma mensagem direta de grupo à qual a sessão pertence.

CampoTipoDescrição
channel_idsnowflakeCanal de mensagem direta de grupo
userobjeto de usuário parcialO usuário que ingressou

Um usuário saiu de uma mensagem direta de grupo à qual a sessão pertence.

CampoTipoDescrição
channel_idsnowflakeCanal de mensagem direta de grupo
userobjeto de usuário parcialO usuário que saiu

O conjunto de webhooks de um canal de guilda foi alterado. O evento não tem dados de webhook, portanto, um cliente que precisa do novo conjunto os lê pela API HTTP.

CampoTipoDescrição
guild_idsnowflakeGuilda à qual o canal pertence
channel_idsnowflakeCanal cujos webhooks mudaram

Um convite foi criado. O payload é o objeto de convite completo estendido com seus metadados de convite.

Um convite de guilda chega às sessões que possuem MANAGE_CHANNELS no canal do convite. Um convite de mensagem direta de grupo chega a todos os destinatários desse grupo, sem verificação de permissão.

Um convite foi excluído.

CampoTipoDescrição
codestringO código do convite excluído
channel_id?snowflakeCanal para o qual o convite apontava, ausente quando o convite não armazenava nenhum
guild_id?1snowflakeGuilda à qual o convite pertencia

1 Presente em todo convite de guilda. Um convite de mensagem direta de grupo não tem guild_id

Os destinatários são escolhidos da mesma maneira que para Criação de Convite.

Um usuário se tornou membro de uma guilda à qual a sessão está conectada. O payload é o objeto guild member completo com guild_id adicionado.

O estado de guilda de um membro ou sua representação pública de usuário mudou. O payload é o objeto guild member completo com guild_id adicionado.

Em uma guilda com mais de 250 membros, uma sessão passiva recebe este evento apenas quando o sujeito é seu próprio usuário.

Um usuário deixou de ser membro de uma guilda à qual a sessão está conectada.

FieldTypeDescription
guild_idsnowflakeGuilda que o usuário deixou
user1objectO usuário que não é mais um membro

1 O objeto possui apenas id. Nenhum outro campo de conta é enviado, portanto, um cliente DEVE resolver a conta a partir do estado que já possui

Em uma guilda com mais de 250 membros, uma sessão passiva recebe este evento apenas quando o sujeito é seu próprio usuário.

Responde à solicitação Request Guild Members para a sessão solicitante.

FieldTypeDescription
guild_idsnowflakeGuilda à qual os membros pertencem
membersarray[objeto guild member]Até 1.000 membros
chunk_indexintegerÍndice baseado em zero deste pedaço (chunk)
chunk_countintegerTotal de pedaços nesta resposta
presences?array[objeto de presença]Presente apenas quando a requisição definiu presences e pelo menos um membro tem uma presença visível
nonce?stringEcoado apenas quando a solicitação nomeou exatamente uma guilda e forneceu um nonce válido

Uma solicitação que não corresponde a nenhum membro ainda produz um pedaço com um array members vazio, chunk_index 0 e chunk_count 1.

Este evento é entregue ao vivo e nunca é retido para repetição por Resume.

Uma lista de membros na qual a sessão se inscreveu através de Lazy Request ressincroniza os intervalos do assinante.

FieldTypeDescription
guild_idsnowflakeGuilda à qual a lista pertence
idstringIdentificador da lista, que é sempre o ID do canal como uma string
channel_id?snowflakeCanal ao qual a lista está limitada
member_countintegerTotal de membros na lista
online_countintegerMembros online na lista
groupsarray[objeto member list group]Cabeçalhos de grupo na ordem da lista
opsarray[objeto member list operation]Operações a serem aplicadas
FieldTypeDescription
id1stringIdentificador do grupo, que é um ID de cargo içado (hoisted), online ou offline
countintegerMembros no grupo

1 Grupos de cargos içados vêm primeiro na ordem de cargos, depois online, depois offline

Um grupo cuja contagem é 0 é omitido. O grupo offline também é omitido assim que contiver mais de 1.000 membros e, nesse caso, items omite também os membros offline. O member_count pode então exceder o número de itens que um cliente poderá ler.

FieldTypeDescription
opstringTipo de operação, que é sempre SYNC
rangearray[integer]Intervalo [start, end] inclusivo que esta operação substitui
itemsarray[objeto member list item]Itens de substituição para o intervalo

SYNC é a única operação que o Decoding Chat envia. Um cliente DEVE ignorar uma operação cujo op não reconheça ou cujo intervalo falhe nos limites definidos em Lazy Request.

Cada item possui exatamente um dos campos.

FieldTypeDescription
group?objeto member list groupUm cabeçalho de grupo ocupando uma posição na lista
member?1objeto guild memberUm membro da lista

1 Estendido com um campo presence que sempre existe. O valor é o objeto de presença da guilda para esse membro quando o membro está visivelmente online para a guilda e, caso contrário, o espaço reservado (placeholder) {"status": "offline", "mobile": false, "afk": false}

Uma entrada de log de auditoria foi escrita. O payload é o objeto guild audit log entry que List guild audit logs retorna para a mesma entrada, com guild_id adicionado. Ele sempre possui id, action_type, user_id e target_id. reason é resolvido conforme o motivo de log de auditoria descreve, e options possui apenas as chaves publicadas do objeto audit log options, com a mesma quantidade e tipos booleanos. changes está presente quando pelo menos uma alteração sobrevive à filtragem.

Uma atualização que não altera nada não registra nenhuma entrada, como afirma o registro de ações de auditoria, de modo que não emite nenhum evento.

A chave de alteração ip é removida de changes, portanto, uma entrada cuja única alteração foi o ip não tem changes nenhum. Um cliente DEVE tratar um options ou changes ausente como um conjunto vazio.

Os destinatários são todas as sessões na guilda que possuem VIEW_AUDIT_LOG, incluindo a sessão em ação.

Um banimento de guilda foi criado.

FieldTypeDescription
guild_idsnowflakeGuilda na qual o banimento foi criado
user1objectO usuário banido

1 O objeto possui apenas id. Nenhum outro campo de conta é enviado

Um banimento de guilda foi removido.

FieldTypeDescription
guild_idsnowflakeGuilda da qual o banimento foi removido
user1objectO usuário desbanido

1 O objeto possui apenas id. Nenhum outro campo de conta é enviado

Uma presença visível mudou. O payload é um objeto de presença.

Uma sessão recebe uma presença de um amigo, de um destinatário de uma mensagem direta de grupo à qual pertence e de um membro de guilda no qual se inscreveu através do array members de uma solicitação Lazy Request. Uma sessão de bot não possui assinaturas de amigo ou de mensagem direta de grupo, de modo que o caminho da guilda é o único que a alcança.

As Atualizações de Presença (Presence Updates) normalmente seguem o Ready. A explosão (burst) inicial de Atualizações de Presença omite usuários já incluídos no Ready. Se o Ready demorar mais de 10.000 ms, as Atualizações de Presença podem chegar antes dele.

Presenças posteriores podem ser atrasadas até que sua guilda, relacionamento ou mensagem direta de grupo se torne visível. Elas podem chegar após Relationship Add, Relationship Update, Channel Create, Channel Update ou Channel Recipient Add. A entrega não é garantida para um sujeito que nunca se torna visível.

FieldTypeDescription
userobjeto partial userO usuário ao qual a presença pertence
statusstringonline, idle, dnd ou offline
mobilebooleanSe o status ativo do usuário provém de uma sessão mobile
afkbooleanSe todas as sessões do usuário estão ausentes (away)
custom_status?objeto custom statusO status personalizado do usuário
guild_id?snowflakeContexto da guilda, presente quando a presença chegou através de uma guilda

O status publicado de uma conta é o status de maior precedência em suas sessões ativas, resolvido na ordem dnd, online, idle, invisible e, finalmente, offline quando não há sessão ativa. Uma sessão que selecionou invisible, e uma conta sem sessão ativa, ambas publicam status: "offline". Uma sessão que perdeu seu transporte é publicada como offline 5.000 ms depois, mesmo que permaneça retomável (resumable) pelo resto da sua janela de retenção de 60.000 ms. Um Resume bem-sucedido publica novamente o status que selecionou por último.

mobile é verdadeiro (true) apenas quando o status resolvido da conta é online e pelo menos uma sessão online se declarou móvel (mobile). afk é falso sempre que mobile é verdadeiro. Caso contrário, é verdadeiro apenas quando todas as sessões ativas estão ausentes.

custom_status é suprimido para null sempre que o status publicado for offline, para que uma conta invisível nunca revele um.

FieldTypeDescription
text?stringTexto de status personalizado
expires_at?ISO8601 timestampQuando o status personalizado expira
emoji_id?snowflakeID do emoji personalizado
emoji_name?stringEmoji Unicode ou o nome do emoji personalizado
emoji_animatedbooleanSe o emoji personalizado é animado

Várias presenças visíveis são entregues em um único Dispatch. Uma guilda o envia apenas quando sai do estado indisponível. Toda sessão que permaneceu conectada o recebe imediatamente após o Guild Create que restaura a guilda.

FieldTypeDescription
guild_idsnowflakeContexto da guilda aplicado a cada entrada
presences1array[objeto de presença]As presenças, no máximo 500 por Dispatch

1 Apenas presenças visivelmente online são incluídas, e a própria presença do destinatário é removida. Um lote (batch) que estaria vazio não produz Dispatch, e um conjunto maior que 500 é dividido em Dispatches consecutivos

Cada entrada possui o contexto da guilda do lote. Um cliente DEVE tratar cada entrada como se ela mesma nomeasse guild_id.

Uma sessão passiva em uma guilda com mais de 250 membros recebe alterações perdidas a cada 30.000 ms. Nenhum evento é enviado quando nada mudou.

FieldTypeDescription
guild_idsnowflakeGuilda que a atualização cobre
channelsmap[snowflake, snowflake]last_message_id alterado por canal
voice_states?1array[objeto voice state]Estados de voz alterados em canais que a sessão pode visualizar

1 Omitido quando o conjunto estaria vazio. Um participante que saiu de um canal visível desde o ciclo anterior aparece aqui com o channel_id definido como null

channels contém apenas os canais cujo last_message_id mudou desde a atualização anterior para aquela sessão, e apenas canais que a sessão pode visualizar. voice_states contém apenas os estados de voz cuja version avançou.

Uma mensagem visível foi criada. O payload é o objeto message completo com os campos abaixo adicionados.

FieldTypeDescription
channel_typeintegerTipo de canal do canal onde a mensagem foi criada
nicks?map[snowflake, string]Apelidos de mensagens diretas de grupo, presentes apenas para uma mensagem direta de grupo que armazena pelo menos um
mention_here?booleanSempre true quando presente, e presente apenas quando a mensagem tem uma menção here
guild_id?snowflakeGuilda à qual o canal pertence
member?1objeto guild memberO objeto guild member do autor, presente em um canal de guilda

1 O campo user é removido dele, e a conta fica em author da mensagem

O Message Create sozinho substitui (overrides) tanto o filtro passivo quanto a lista ignored_events, e os dois usam testes diferentes. Uma menção direta, uma menção de um dos cargos do usuário, uma menção everyone ou uma menção here substitui o filtro passivo. Uma menção direta, everyone ou here, por si só, substitui a lista ignored_events.

Uma mensagem visível mudou. O payload é o objeto message atual completo, sem channel_type, nicks ou mention_here. Em um canal de guilda, ele é estendido com guild_id e com member, o objeto guild member do autor com seu campo user removido.

Os destinatários devem possuir READ_MESSAGE_HISTORY no canal, ou a mensagem deve ser mais recente do que o limite de histórico de mensagens da guilda.

Uma mensagem visível foi excluída.

CampoTipoDescrição
idsnowflakeA mensagem excluída
channel_idsnowflakeCanal onde a mensagem estava
content?1?stringConteúdo que a mensagem continha antes de ser excluída
author_id?1snowflakeConta que escreveu a mensagem
guild_id?snowflakeGuilda à qual o canal pertence
member?2objeto membro da guildaO objeto de membro da guilda do autor, presente em um canal de guilda

1 Ambos os campos são omitidos quando um administrador da instância excluiu a mensagem por meio da API de Administração, quando o Decoding Chat a excluiu após uma denúncia CSAM, ou quando o Decoding Chat a excluiu porque a moderação de conteúdo bloqueou uma pré-visualização de link nela, e author_id também é omitido para uma mensagem sem autor.

2 O campo user é removido dele, e o campo inteiro fica ausente quando author_id está ausente ou o autor não é mais um membro.

Várias mensagens em um canal foram excluídas juntas.

CampoTipoDescrição
idsarray[snowflake]As mensagens excluídas
channel_idsnowflakeCanal onde as mensagens estavam
guild_id?snowflakeGuilda à qual o canal pertence

O estado de leitura do usuário atual avançou para um canal, geralmente porque outra das sessões da conta o leu.

CampoTipoDescrição
channel_idsnowflakeCanal cujo estado de leitura avançou
message_idsnowflakeMensagem para a qual o estado de leitura agora aponta
mention_countintegerContagem restante de menções para o canal
manual?booleanSe a confirmação foi explícita
version?stringVersão do estado de leitura como uma string decimal

Um usuário adicionou uma reação a uma mensagem.

CampoTipoDescrição
user_idsnowflakeUsuário que reagiu
channel_idsnowflakeCanal onde a mensagem está
message_idsnowflakeMensagem que recebeu a reação
emojiobjeto emoji de reaçãoO emoji
guild_id?snowflakeGuilda à qual o canal pertence
member?objeto membro da guildaO objeto de membro da guilda do usuário que reagiu, presente em um canal de guilda

Em um canal de guilda, a sessão nomeada pelo session_id da solicitação é excluída e esse campo é removido do payload. Em um canal privado, o campo é entregue como session_id e não exclui ninguém, então um cliente DEVE tolerar receber de volta sua própria reação.

CampoTipoDescrição
namestringEmoji Unicode, ou o nome do emoji personalizado
id?snowflakeID do emoji personalizado, ausente para um emoji Unicode
animated?1booleanSe o emoji personalizado é animado

1 Presente apenas no evento Message Reaction Add que cria a primeira reação com aquele emoji na mensagem. Uma adição a um emoji que já tem um reator, um Message Reaction Remove e um Message Reaction Remove Emoji omitem o campo.

Nem id nem animated são nulos em nenhum momento. Uma reação Unicode omite ambos, então um cliente distingue as formas pela presença de id. Um cliente NÃO DEVE interpretar um animated ausente como false.

Com a flag de sessão DEBOUNCE_MESSAGE_REACTIONS, adições em canais privados são agrupadas ao longo de 650 ms e entregues juntas. Cada janela mantém as 512 últimas adições. Adições em canais de guilda sempre chegam como eventos individuais Message Reaction Add.

CampoTipoDescrição
channel_id1snowflakeCanal onde a mensagem está
message_id1snowflakeMensagem que recebeu as reações
guild_id?1snowflakeGuilda à qual o canal pertence
reactionsarray[objeto de adição de reação]As adições combinadas, na ordem de chegada

1 Todas as adições em reactions pertencem a esta mensagem. Uma janela cobrindo várias mensagens produz um Dispatch separado para cada uma.

Quando a janela se fecha contendo exatamente uma adição, o Decoding Chat envia um Message Reaction Add para a sessão. Uma sessão sem a flag recebe um Message Reaction Add por adição.

CampoTipoDescrição
user_idsnowflakeUsuário que reagiu
emojiobjeto emoji de reaçãoO emoji
member?objeto membro da guildaO objeto de membro da guilda do usuário que reagiu, presente em um canal de guilda

A reação de um usuário foi removida de uma mensagem.

CampoTipoDescrição
user_idsnowflakeUsuário cuja reação foi removida
channel_idsnowflakeCanal onde a mensagem está
message_idsnowflakeMensagem em que a reação estava
emojiobjeto emoji de reaçãoO emoji
guild_id?snowflakeGuilda à qual o canal pertence
member?objeto membro da guildaO objeto de membro da guilda do usuário, presente em um canal de guilda

A exclusão funciona exatamente como em Message Reaction Add, então a sessão atuante é descartada em um canal de guilda e mantida em um privado.

Com o debounce de reação ativado, uma adição removida dentro da mesma janela não produz nenhum dos eventos para essa mensagem, usuário e emoji.

Todas as reações foram removidas de uma mensagem de uma só vez.

CampoTipoDescrição
channel_idsnowflakeCanal onde a mensagem está
message_idsnowflakeMensagem cujas reações foram limpas
guild_id?snowflakeGuilda à qual o canal pertence

Todas as reações usando um emoji foram removidas de uma mensagem.

CampoTipoDescrição
channel_idsnowflakeCanal onde a mensagem está
message_idsnowflakeMensagem onde as reações estavam
emojiobjeto emoji de reaçãoO emoji cujas reações foram removidas
guild_id?snowflakeGuilda à qual o canal pertence

Um usuário visível começou a digitar em um canal.

CampoTipoDescrição
channel_idsnowflakeCanal no qual o usuário está digitando
user_idsnowflakeUsuário que começou a digitar
timestampintegerSegundos Unix de quando a digitação começou
guild_id?snowflakeGuilda à qual o canal pertence
member?objeto membro da guildaO objeto de membro da guilda do usuário digitando, presente em um canal de guilda

O override typing definido por meio da Solicitação Preguiçosa (Lazy Request) decide a entrega em uma guilda. Sem override, uma sessão recebe o evento quando está ativa na guilda ou quando a guilda tem 250 membros ou menos, então uma sessão passiva em uma guilda pequena ainda o recebe. Uma guilda que define o bit TYPING_EVENTS em suas operações de guilda desativadas não produz o evento para ninguém.

O horário do pin mais recente de um canal mudou.

CampoTipoDescrição
channel_idsnowflakeCanal cujos pins mudaram
last_pin_timestamp?timestamp ISO8601Horário do pin mais recente, nulo quando nada está fixado
guild_id?snowflakeGuilda à qual o canal pertence

O usuário atual confirmou os pins de um canal. Todas as sessões da conta recebem o evento, incluindo aquela que emitiu a confirmação.

CampoTipoDescrição
channel_idsnowflakeCanal cujos pins foram confirmados
timestamptimestamp ISO8601Horário que a confirmação registrou para o canal

O estado de voz de um participante mudou. O payload é um objeto de estado de voz.

Os destinatários são as sessões que podem visualizar o canal de voz, incluindo sessões passivas. Uma sessão passiva em uma guilda com mais de 250 membros também recebe os estados de voz alterados por meio de Atualizações Passivas.

Um channel_id nulo significa que o participante saiu.

CampoTipoDescrição
guild_id?snowflakeGuilda à qual o canal de voz pertence, nulo em uma chamada
channel_id?snowflakeCanal de voz, nulo quando o participante saiu
user_id?snowflakeParticipante
connection_id?stringIdentidade da conexão de voz
session_id?stringSessão de gateway proprietária da conexão
member?objeto membro da guildaO objeto de membro da guilda do participante, nulo em uma chamada
mutebooleanMudo pelo servidor
deafbooleanSurdo pelo servidor
self_mutebooleanMudo do microfone local
self_deafbooleanSurdo da saída local
self_videobooleanSe o participante publica vídeo da câmera
self_stream1booleanSe a conexão anuncia uma faixa de compartilhamento de tela
is_mobilebooleanSe o participante está em um cliente móvel
suppressbooleanSe o participante está suprimido
viewer_stream_keysarray[string]Streams que esta conexão está assistindo
e2ee_capablebooleanSe o cliente do participante suporta voz com criptografia de ponta a ponta
versionintegerVersão monotônica do estado de voz deste participante

1 O cliente do participante reporta esse valor. Em um canal de voz de guilda, o Decoding Chat o define como falso quando o participante não tem a permissão STREAM.

A forma de transmissão não tem region_id, server_id, latitude ou longitude.

A sessão recebeu ou substituiu sua própria concessão de voz. Entregue apenas à sessão solicitante.

CampoTipoDescrição
tokenstringO token de acesso do LiveKit que esta conexão apresenta
endpointstringA URL de sinalização do LiveKit para se conectar, um endereço ws:// ou wss://
connection_idstringA conexão de voz coberta pela concessão
channel_idsnowflakeO canal coberto pela concessão
guild_id?1snowflakeA guilda à qual o canal pertence
e2ee_key?2stringO material de chave que a criptografia de ponta a ponta do canal usa

1 Presente para um canal de voz de guilda e ausente para uma chamada, de forma que um cliente lê o escopo a partir deste campo.

2 Presente apenas quando o canal possui criptografia de ponta a ponta.

O Decoding Chat usa LiveKit para mídia de voz. Não há um segundo websocket de voz, nenhum conjunto de opcode de voz e nenhuma etapa de descoberta UDP. Um cliente abre uma conexão LiveKit para endpoint, apresenta o token lá e fala o protocolo LiveKit a partir desse momento. A Voz define a nomeação da sala, a identidade do participante e as fontes de faixa que uma concessão admite.

Uma concessão é emitida quando uma conexão é aberta, quando ela se move para outro canal e quando sua região muda. Alternar self_mute, self_video ou self_stream não produz uma nova concessão. Uma mudança de região de chamada reemite uma concessão para cada participante da chamada.

Um participante pediu para que seu som de entrada tocasse em um canal de voz no qual ele já está conectado.

CampoTipoDescrição
user_idsnowflakeParticipante cujo som toca
channel_idsnowflakeCanal de voz
guild_id?snowflakeGuilda à qual o canal pertence, nulo para uma chamada
sound_idsnowflakeSom de entrada
hashstringHash de conteúdo do arquivo de som
urlstringURL para buscar o som
duration_msintegerDuração do som em milissegundos
content_typestringTipo MIME do arquivo de som

Os destinatários são todas as outras contas com um estado de voz naquele canal, um Dispatch cada e no máximo um por conta. A conta solicitante nunca recebe seu próprio som.

Uma chamada de canal privado começou, ou tornou-se visível no estado inicial da sessão.

CampoTipoDescrição
channel_idsnowflakeCanal em que a chamada está
message_idsnowflakeMensagem de chamada que abriu a chamada
region?stringRegião de voz que atende a chamada, nulo até que uma seja escolhida
ringingarray[snowflake]Destinatários sendo chamados (tocando)
voice_states1array[objeto de estado de voz]Participantes, ordenados por ID do participante
recipients?2array[snowflake]Todos os destinatários do canal
created_at?2integerMilissegundos Unix de quando a chamada foi aberta

1 As entradas também incluem region_id e server_id, que os clientes DEVEM ignorar.

2 Presente no estado da chamada inicial ou recuperada.

O estado inicial da chamada chega logo após o Ready. O estado recuperado pode chegar após uma perda na conexão da chamada, quer o cliente tenha recebido o evento Call Delete ou não.

Os destinatários são todos os destinatários do canal, não importa se eles entraram na chamada ou não. O mesmo conjunto recebe o Call Update e o Call Delete.

O conjunto de toque, lista de participantes ou região de uma chamada ativa mudou. O payload tem a mesma estrutura de Call Create sem recipients e created_at.

Uma operação sem efeito visível não produz nenhum Call Update.

Uma chamada terminou ou tornou-se indisponível.

CampoTipoDescrição
channel_idsnowflakeCanal no qual a chamada estava
unavailable?1booleanVerdadeiro quando a chamada tornou-se indisponível

1 Ausente quando a chamada terminou.

Com unavailable: true, o cliente DEVE manter a chamada como uma entrada indisponível. Se ela se tornar disponível novamente, um novo Call Create incluirá recipients e created_at. A recuperação não é garantida.

Responde ao Solicitar Contagens de Guildas para a sessão solicitante.

CampoTipoDescrição
countsarray[objeto de entrada de contagem de guilda]Uma entrada por guilda que respondeu a tempo
nonce?stringEcoado quando a solicitação forneceu um nonce válido

Uma guilda que não está conectada, ou que perdeu seu prazo, não tem nenhuma entrada em counts.

CampoTipoDescrição
guild_idsnowflakeGuilda que as contagens descrevem
member_countintegerTotal de membros
online_count1integerMembros online visíveis para a conta solicitante

1 Conta apenas os membros online que compartilham pelo menos um canal que a conta solicitante pode visualizar. Uma conta que tem a permissão ADMINISTRATOR recebe a contagem online inteira da guilda, e uma conta que não pode visualizar nenhum canal recebe 1 quando ela mesma está online e 0 quando não está.

Responde ao Solicitar Contagens de Membros do Canal para a sessão solicitante.

CampoTipoDescrição
countsarray[objeto de entrada de contagem de canal]Uma entrada por canal que respondeu
nonce?stringEcoado quando a solicitação forneceu um nonce válido

Um canal que a sessão não pode visualizar, e um canal no qual faltar a permissão VIEW_CHANNEL_MEMBERS, não tem nenhuma entrada em counts.

CampoTipoDescrição
guild_idsnowflakeGuilda à qual o canal pertence
channel_idsnowflakeCanal que as contagens descrevem
member_countintegerMembros que podem visualizar o canal
online_countintegerMembros online que podem visualizar o canal

Todo objeto de recurso nomeado nesta página tem a representação definida pela API HTTP. Um payload Dispatch com um objeto de recurso tem os mesmos campos, com os eventos de escopo de guilda adicionando guild_id e os eventos de mensagem e reação adicionando member.

Estas reduções são específicas do Gateway e não aparecem em lugar nenhum da API HTTP. O evento Ready remove user de cada relacionamento e de cada membro de guilda e move essas contas para seu array users. O member adicionado a um evento de mensagem tem o seu próprio user removido, e a conta fica em author da mensagem. Um cliente DEVE resolver essas contas a partir do payload circundante.