Pular para o conteúdo
Decoding Chat API

Usuário atual

O usuário atual é a conta que apresentou a credencial, representada como um objeto de usuário. As rotas aqui leem essa conta, alteram-na e executam suas operações de ciclo de vida.

Toda rota exceto Obter o usuário atual é apenas para usuários. Essas rotas rejeitam um bot ou credencial bearer OAuth2 com 403 ACCESS_DENIED. Elas também rejeitam uma conta que possua uma ação necessária pendente com 403 ACCOUNT_SUSPICIOUS_ACTIVITY.

Campos sensíveis à segurança e operações destrutivas de ciclo de vida nesta página exigem modo sudo, que define a forma do token, o ciclo do cabeçalho e o código que cada falha retorna. A prova aceita depende do estado da conta.

Estado da contaProva aceita
Nenhum autenticador configuradoA password atual
Um autenticador configuradomfa_method de totp com mfa_code, ou mfa_method de webauthn com webauthn_response e webauthn_challenge
Nenhuma credencial de senha e nenhum autenticadorNenhuma, o requisito já está satisfeito

Uma vez que uma conta configura um autenticador, sua password para de funcionar aqui.

GET/v1/users/@meBotidentify

Retorna o objeto de usuário atual.

  • Uma credencial bearer OAuth2 deve conter o escopo identify, e uma sem ele é rejeitada com 403 MISSING_OAUTH_SCOPE, cujo corpo contém required_scope.
  • Um bearer recebe o objeto de usuário com os valores zero que aquela página lista para uma leitura de bearer, e email apenas quando também contém o escopo email.

Uma conta com uma ação necessária pendente pode chamar esta rota, para que um cliente possa ler e consultar as ações que deve concluir.

StatusCorpoCondição
200objeto de usuárioA conta atual foi retornada
403resposta de erroCredencial bearer não possui o escopo identify e a requisição retorna MISSING_OAUTH_SCOPE

40 requisições a cada 10 segundos para cada usuário autenticado, no bucket user:settings:get, que é compartilhado com Obter configurações do usuário atual.

PATCH/v1/users/@me

Modifica a conta atual e retorna o objeto de usuário resultante.

  • Alterar o nome de usuário (username) ou discriminador para um valor diferente, fornecer new_password ou fornecer email_token exige verificação sudo.
  • Um campo fornecido com o valor que a conta já possui não é uma alteração e não levanta esse requisito.
  • Uma conta não reivindicada também nunca o levanta.
CampoTipoDescrição
username?1stringNome de usuário após corte de espaços (1-32 letras ASCII, dígitos ou sublinhados)
discriminator?2string | integerDiscriminador processado como número inteiro (1-4 dígitos decimais)
global_name?3?stringNome de exibição após sanitização (1-32 caracteres), ou null para limpar
email?4stringSempre rejeitado, porque um endereço é aplicado via email_token
new_password?5stringNova senha (8-256 caracteres)
password?stringSenha atual (8-256 caracteres), usada como prova de verificação sudo
avatar?6?stringImagem do avatar codificada em Base64, ou null para limpar
banner?6 7?stringImagem do banner codificada em Base64, ou null para limpar
bio?8?stringBiografia (1-320 caracteres), ou null para limpar
pronouns?9?stringPronomes (1-40 caracteres), ou null para limpar
accent_color??integerCor RGB compactada em 24 bits (0-16777215), ou null para limpar
timezone?10 11?stringIdentificador de fuso horário IANA suportado (1-128 caracteres), ou null para limpar
timezone_privacy_flags?10integerMarcadores de privacidade de campo de perfil aplicados ao fuso horário do perfil
premium_badge_hidden?booleanOcultar ou não o selo premium do perfil público
premium_badge_masked?booleanApresentar ou não o selo vitalício como um selo de assinatura comum
premium_badge_timestamp_hidden?booleanOcultar ou não o horário de ativação do premium
premium_badge_sequence_hidden?booleanOcultar ou não a sequência premium vitalícia
premium_enabled_override?12booleanUma substituição de staff que concede titularidades premium
has_dismissed_premium_onboarding?13booleanSe o fluxo de integração premium foi descartado
has_unread_gift_inventory?14booleanSe o inventário de presentes ainda guarda itens não lidos
mention_flags?integerPreferência de menção de resposta, um de 0, 1 ou 2
email_token?15stringToken de e-mail (1-256 caracteres) emitido por verificar novo e-mail
mfa_method?stringMétodo de verificação sudo, sendo totp ou webauthn
mfa_code?stringAutenticador de verificação sudo ou código de backup (1-32 caracteres)
webauthn_response?objeto de asserção WebAuthnAsserção WebAuthn de verificação sudo
webauthn_challenge?stringDesafio WebAuthn de verificação sudo (1-256 caracteres)

1 O valor não pode ser everyone ou here e não pode conter decoding chat ou system message, em qualquer instância, incluindo aquelas auto-hospedadas

2 Fornecer o campo sem um nome de usuário requer a titularidade de discriminador personalizado e, de outra forma, é rejeitado com CHANGING_DISCRIMINATOR_REQUIRES_PREMIUM. Um par já atribuído a outra conta é rejeitado com TAG_ALREADY_TAKEN

3 A sanitização remove substitutos independentes, caracteres invisíveis e seletores de variação e mescla espaços em branco antes que o comprimento seja medido

4 Qualquer valor de string retorna EMAIL_MUST_BE_CHANGED_VIA_TOKEN no caminho email, acompanhado por INVALID_EMAIL_FORMAT quando a string não for um endereço

5 Uma conta reivindicada também fornece password, e um corpo que o omite é rejeitado com PASSWORD_NOT_SET. Quando a instância verifica se há senhas violadas, uma que foi vazada é rejeitada com PASSWORD_IS_TOO_COMMON

6 O valor pode ter o prefixo data:...;base64,. A carga restante tem entre 1 e 13981016 caracteres

7 Todo valor não nulo requer o direito a banner animado, que bloqueia cada banner de perfil, e, de outra forma, é rejeitado com BANNERS_REQUIRE_PREMIUM

8 O limite da instância resolvido max_bio_length é aplicado acima do limite do esquema, e um valor mais longo é rejeitado com CONTENT_EXCEEDS_MAX_LENGTH

9 O valor é verificado contra a lista de bloqueio de substring de perfil de instância, como username, global_name e bio

10 O par é apenas para staff. Em uma requisição a partir de uma conta sem o marcador STAFF, ambos os campos são descartados antes da atualização rodar

11 Um identificador não reconhecido é rejeitado com INVALID_TIMEZONE_IDENTIFIER. Definir um primeiro fuso horário sem timezone_privacy_flags define esses marcadores como EVERYONE

12 O campo exige o marcador STAFF, e um solicitante sem ele é rejeitado com 403 MISSING_ACCESS

13 Apenas true tem um efeito, registrando o horário atual como o momento de descarte. false é aceito e não faz nada

14 Apenas false tem um efeito, avançando o cursor de leitura do inventário de presentes para a sequência atual. true é aceito e não faz nada

15 Fornecer o campo aplica o endereço verificado que o token representa, e o token é excluído assim que a atualização é concluída

Um campo omitido deixa o seu valor armazenado inalterado e um explícito null limpa o campo caso aceite valores nulos. has_dismissed_premium_onboarding funciona apenas em true e has_unread_gift_inventory apenas em false, de modo que nenhum dos dois possa ser desfeito através desta rota.

Para ignorar a prova de corpo nestes campos, envie o token sudo via cabeçalho de requisição X-Fluxer-Sudo-Mode-JWT.

Um corpo que não tenha email_token e não possua campos para além de mfa_method, mfa_code, webauthn_response e webauthn_challenge retorna a conta intacta inalterada. Essa verificação é efetuada antes de o Decoding Chat consultar as ações exigidas e então se dá com sucesso logo durante uma ação obrigatória. Prover password apenas resulta em uma atualização na qual nada é retificado, e emite o evento Atualização de Usuário.

O Decoding Chat rejeita uma conta que contenha qualquer ação obrigatória. Apenas fica isenta quando ela forneça o campo email_token e nada além de dados voltados ao sudo na validação. E qualquer propriedade ademais fornecida cancela sua exclusividade garantida.

Uma conta validada pede um endereço confirmado para modificar os seguintes atributos: username, discriminador, display name, avatar, banner, bio, pronome, accent_color, fuso horário (timezone) e privacidade perante o fuso. Solicitações não preenchidas ou desrespeitadas com estas pendências são respondidas mediante o 403 PROFILE_EMAIL_VERIFICATION_REQUIRED.

A conta fica invalidada caso ela fique sem conter qualquer passe de password estabelecida; se ela não estiver na postura de boot ou se nunca detiver da herança originada nos caminhos baseados na tração atrelada na mecânica do SSO. O seu uso poderá habilitar estritamente o uso dos new_password, has_dismissed_premium_onboarding em conjunto ao has_unread_gift_inventory. Toda variação solicitada perante a um perfil diverso acarreta negação devido ao status de limitação ativado UNCLAIMED_ACCOUNTS_CAN_ONLY_SET_EMAIL_VIA_TOKEN junto ao campo falho em pauta. Esta alocação abrange a cobertura visual da própria visualização individual; tornando possível aplicar uma declaração voltada a uso via o recurso base sobre a email_token para acionamentos provenientes do protocolo de sudo. Tais usos agem conforme via atrativa do passe para sua posterior requisição efetiva no meio interativo de reinvindicação do portador de seu uso contínuo.

Conteúdos de avatar e banner decodificados ficam dentro do limite resolvido avatar_max_size, cujo valor padrão é 10485760 bytes. Uma carga maior que o teto leva a rejeição de resposta correspondida em caso de retorno reportado a seguir sob o argumento validante atrelado com o aviso de recusa do código em pauta emitido IMAGE_SIZE_EXCEEDS_LIMIT. Formatos aderentes abrangem PNG, JPEG, WebP, GIF, APNG, AVIF, HEIC, HEIF, JPEG XL, bem como as variantes baseadas em padrão de construção SVG. Outros meios que passem pela filtragem — por extensão inclusa o modelo correspondente de variação AVIF provido via mecanismo dinâmico e em loop de animação, acabam recebendo sinal reprobatório apontando por motivo atrelado a INVALID_IMAGE_FORMAT. Isso pode ser gerado se a Proxy voltada as mídias da aplicação por restrição própria na decodificação ou leitura, relatar o elemento em sua checagem sendo classificado de origem com procedência e/ou leitura indecifrável de ponta.

A aplicação correspondente atrelada ao modelo gerado via avatar em versão com animação requer sua atribuição validante inclusa previamente ao usuário do perfil para funcionamento da mesma ou acabará recebendo resposta de recusa gerando o ANIMATED_AVATARS_REQUIRE_PREMIUM. Todo processamento que ocorrer sobre avatar de maneira livre de barreiras e banners em cenários positivos, derivam cores principais originárias do dado recebido ou em questão enviadas de retorno após esse preenchimento como resposta e atribuídos via avatar_color ao lado do banner_color.

O nome de usuário, nome de exibição, biografia e pronomes são verificados em relação à lista de bloqueio de substring do perfil da instância, e uma correspondência retorna 403 CONTENT_BLOCKED. Uma conta com a flag STAFF está isenta. A biografia e os pronomes também são verificados em relação às listas de bloqueio de frases e URLs.

O filtro de conteúdo global aplicado a cada corpo JSON POST, PUT e PATCH executa as listas de bloqueio de frases e URLs em todo o corpo antes do handler. Ele lê username, global_name, email, timezone e discriminator quando fornecidos como uma string, ao lado da biografia e dos pronomes. Ele ignora avatar, banner, password, new_password, email_token, mfa_code, webauthn_response, webauthn_challenge e todos os campos cujo nome termine em _flags, e ignora qualquer valor com menos de 3 caracteres. Uma correspondência retorna o mesmo 403 CONTENT_BLOCKED, e nenhuma flag isenta uma conta disso.

Cada controle é separado do bucket da rota. Uma recusa retorna 400 INVALID_FORM_BODY com o código de validação correspondente ao invés de 429.

AlteraçãoLimite de ocorrências permitidasCódigo de validação
Nome de usuário resultante ou discriminador5 por 3 horasUSERNAME_CHANGED_TOO_MANY_TIMES
Biografia para um valor diferente25 por 30 minutosBIO_CHANGED_TOO_MANY_TIMES
Pronomes para um valor diferente25 por 30 minutosPRONOUNS_CHANGED_TOO_MANY_TIMES
Cor de destaque (accent color) para um valor diferente25 por 30 minutosACCENT_COLOR_CHANGED_TOO_MANY_TIMES
Qualquer avatar não nulo25 por 30 minutosAVATAR_CHANGED_TOO_MANY_TIMES
Qualquer valor de banner após a checagem de titularidade25 por 30 minutosBANNER_CHANGED_TOO_MANY_TIMES

O Decoding Chat consome o controle do avatar antes de detectar conteúdo idêntico, e limpar o avatar não consome nada. Uma solicitação de limpeza consome o controle do banner, assim como uma solicitação cujo valor seja inalterado.

StatusCorpoCondição
200objeto de usuárioA conta foi retornada após a aplicação de cada campo permitido
400resposta de erroO corpo, a imagem, a tag, a senha, a titularidade, o controle secundário ou a prova de sudo é inválida
403resposta de erroVerificação de e-mail, verificação de sudo ou um campo exclusivo para staff é necessário, ou o conteúdo está bloqueado

Uma alteração bem-sucedida emite Atualização de Usuário para a conta. Quando um campo do objeto parcial do usuário é alterado, outras contas observam o novo valor. Alterar o nome de usuário, o discriminador ou o nome de exibição também atualiza a conta na pesquisa de membros da guilda para cada guilda cujos membros estão indexados. Um corpo sem email_token e sem nenhum campo além dos campos de verificação do sudo não altera nada e não emite Despacho. Qualquer outro corpo aceito emite o Despacho mesmo quando nenhum valor armazenado foi alterado.

20 solicitações por minuto para cada usuário autenticado, no bucket user:update, que é compartilhado com Aceitar as políticas atuais e Redefinir o estado premium atual.

DELETE/v1/users/@me/authorized-ipsMFA

Exclui todos os registros de IP autorizados para a conta atual. Requer verificação de sudo. Retorna 204 com o corpo vazio e não emite o Despacho do Gateway.

Um login posterior de qualquer endereço precisará então de uma nova autorização de IP.

O corpo é o objeto de verificação sudo. Pode ser um objeto vazio quando a solicitação apresenta um token sudo aceito.

StatusCorpoCondição
204vazioOs registros de IP autorizados foram apagados
403resposta de erroÉ necessária verificação de sudo e o pedido retorna SUDO_MODE_REQUIRED

10 requisições por minuto para cada usuário autenticado, no bucket user:authorized_ips:forget.

POST/v1/users/@me/disableMFA

Desativa a conta atual, preservando os seus dados. Exige verificação de sudo.

A rota não emite um token sudo e não retorna nenhum cabeçalho de resposta X-Fluxer-Sudo-Mode-JWT.

O corpo é o objeto de verificação sudo. Pode ser um objeto vazio quando o pedido apresenta um token sudo aceito.

StatusCorpoCondição
204vazioA conta foi desativada
403resposta de erroA verificação de sudo é requerida e a solicitação retorna SUDO_MODE_REQUIRED
500resposta de erroA conta não pôde ser desativada ou suas sessões não puderam ser deletadas

O Decoding Chat marca a conta como desativada e apaga cada sessão de autenticação que ela possui. A Atualização de Usuário é publicada somente depois daquela deleção, de modo que não exista nenhum cliente da conta deixado a recebê-la. A flag de desativado não compõe o campo de flags públicas, deste modo, as outras contas não observam modificação.

5 requisições por hora para cada usuário autenticado, no bucket user:account:disable.

POST/v1/users/@me/deleteMFA

Agenda a deleção da conta em vigor e remove por completo todos os perfis englobados como suas respectivas sessões em execução no processo de encerramento da deleção do usuário conectado no uso atual; sendo exigida então o requerimento envolvendo a prova relacionada a verificação sudo exigida.

  • A solicitação realizada partindo a priori como de autoria contendo o envolvimento perante uma respectiva filiação possuidora vinculada por a qualquer espaço da comunidade de cunho originada na fundação da guilda sofrerá negação apontando como indicativo correspondente sendo o reportado erro originário na chave atrelada ao evento referenciando 400 USER_OWNS_GUILDS.

O corpo é o objeto de verificação sudo. Pode ser um objeto vazio caso o requerimento entregue uma credencial perante como aceita da comprovação referenciada ao passe originado como pertencente com respeito e em função sobre a mesma emissão sob posse portando sua autoria com token originado no modelo contido de passe como referencial atestando como sudo válido e verificado de mesma chave correspondente ao uso.

StatusCorpoCondição
204vazioA exclusão da conta foi agendada
400resposta de erroO originador deste apelo é atestadamente reportado e possuidor legal dono no limite contendo perante pelo menos um dos canais ou a uma de cada guilda em posse dele, sendo retornada desta forma como negação atrelada com USER_OWNS_GUILDS
409resposta de erroInformará como negação respondendo via parâmetro do uso perante via sinalizado reportando via alerta atrelado correspondendo originado na chave reportada da sinalização referente originando via falha a seu pretexto de acionamento contido como no caso emitido reportado com via sendo CONFLICT, dado o pretexto e devido à respectiva limpeza e eliminação originada ter adentrado como iniciada, ou devido os estados de pretexto e do modo englobado sob os aspectos da finalidade de deleção sofreram as mudanças adotadas neste decurso envolvente e de progresso processando tal uso para seu fechamento em requerimento que alteraram durante sua própria formulação neste estado e o evento envolvente de acionamento.

No ambiente envolvente ao ecossistema originado e focado baseando-se em uso, perante isso sua mecânica baseada sob o software de marca no modelo perante em função da engine pertencendo à aplicação em tese da Decoding Chat, marcará para deleção a partir da configuração em vigência englobada via estipulação validada definindo data e em um horário já fixado limitando como via na configuração de limitação agendado a tal hora da estipulação e colocará enfileirada no tempo percorrido agendado e determinado desta forma sendo validada para sua extinção completa, no seu horário da validade programada sendo executada na sua respectiva pauta adotada ao fato já assinalada na predefinição correspondente. No meio enquanto aguarda ou já perante esta situação referida e a mesma ser iniciada sob a posse tendo ela em conjunto também englobado uma alocação atestando conter com isso também originado possuindo endereço perante via o recurso em uso fornecido já cadastrado com credencial sob chave de confirmação vinculando via correspondência em validação baseada pela mesma premissa via chave baseada atrelada à seu e-mail como validante a comprovação de seu usuário do canal, a respectiva premissa e engrenagem do respectivo motor que movimenta a adoção via engine do sistema na marca originária pautado originando seu emprego por via uso via mecanismo vinculado à aplicação correspondente por software a engrenagem de funcionalidade vinculada chamada Decoding Chat será designada e programada a emissão originando este repasse mediante comunicação a tal dono responsável e encarregado alertando de modo que enviará englobando mensagem remetente de sua notificação alertando para tal correspondência deste fato reportado contendo sua exclusão de uso como uma resposta alertando a este estado alertando para tal procedimento do fato originando com este remetente gerado na língua natural ao ambiente pré-selecionado na aba voltada a conta do mesmo. Qualquer uma e por tabela todas de suas atreladas seções mantidas correspondente via validante atestando como autorizações que permitem estarem validadas via passaporte a respectiva autenticada seção em meio ativo ao percurso do processo vão ser englobadas e serão logo após apagadas também na leva e no ato em que Atualização de Usuário ser validada passando a fase seguinte que é publicar somente a notificação confirmando ao seu meio após isto ser efetuado, confirmando tudo isto no deleção. Outras origens não conseguirão ter visualização apontando tal bandeira do status validando a ausência já do seu correspondente possuinte dono na sua posse contendo da respectiva chave de conta excluída ou do andamento perante via processo pois a indicação a via sinalização não é pública a elas enquanto não ser feita via apagamento contendo eliminação ser iniciada de fato por meio a via exclusão da via englobando os processos com finalidade atrelando via engine com tal requerimento do comando no modelo de execução já na deleção originada perante tal execução.

5 requisições por hora para cada usuário autenticado, no bucket user:account:delete.

POST/v1/users/@me/terms-acceptance

Registra a aceitação dos termos de serviço e da política de privacidade vigentes. Retorna o objeto do usuário atualizado.

O corpo é um objeto vazio, e um corpo ausente ou vazio é lido como um. Qualquer propriedade fornecida é descartada. JSON inválido retorna 400 INVALID_FORM_BODY com INVALID_FORMAT no caminho do body. JSON válido que não é um objeto é rejeitado com 400.

StatusCorpoCondição
200objeto do usuárioA aceitação da política foi registrada
400resposta de erroO corpo não é um JSON válido ou é analisado como um JSON que não é um objeto

O Decoding Chat define ambos terms_agreed_at e privacy_agreed_at para a hora da solicitação e emite a Atualização de Usuário para a conta. Nenhuma das marcações temporais pertence ao objeto de usuário parcial, portanto nenhuma outra conta observa a alteração. Repetir a operação substitui as duas datas.

20 requisições por minuto para cada usuário autenticado, no bucket user:update, que é compartilhado com Modificar o usuário atual e Redefinir o estado premium atual.

POST/v1/users/@me/premium/reset

Limpa todos os campos premium na conta atual e retorna 204 com o corpo vazio. Exige a flag STAFF.

Um chamador sem esta flag é rejeitado com o erro 403 MISSING_ACCESS.

StatusCorpoCondição
204vazioO estado premium foi redefinido
403resposta de erroO chamador não possui a flag STAFF e a requisição retorna o status MISSING_ACCESS

A operação limpa premium_type, premium_since, premium_until, premium_gift_extension_ends_at, premium_will_cancel, premium_billing_cycle, premium_grace_ends_at e premium_lifetime_sequence, além de armazenar os identificadores do consumidor no provedor e os de assinaturas, a compra e os primeiros sinais de reembolso, as sequências atreladas no histórico de presentes dos respectivos depósitos no armazenamento de itens como brindes aos contidos do histórico, e o uso de sua via em forma correspondendo atrelando via a exclusão da referida permissão atrelada a titularidade originada via status voltada a via do recurso originando na autoridade por sobreposição atestada do referido funcionário atestável englobando no caso em questão do staff validando que foi estipulada tal via com flag voltada para uso de isenção sobre premium. Também emite Atualização de Usuário voltando à respectiva vinculação dessa alteração reportando na conta atrelada na requisição de deleção ou remoção das propriedades referidas contidas nela.

Para além de qualquer usuário apenas poderá obter mudança contendo alteração englobada perante ao estado apenas contendo e englobando o modelo com originada versão portando formato animado por seu recurso vinculado pertencendo ou referenciada no atributo englobado ao qual chamam via o uso para o seu próprio em anexo da conta com atestado validado referenciando e referenciado sob avatar ao longo via acesso ao qual seu respectivo engajamento derivando via via hash de provisão como originada sobre a decodificada versão originada sem seus contidos aspectos visuais da extensão sem restrição perdendo sua respectiva flag validando a ausência por titularidade de tal modo.

20 requisições por minuto para cada usuário autenticado, no bucket user:update, o qual divide este escopo de acesso atrelado com o método focado em Modificar o usuário atual bem como também para Aceitar as políticas atuais.