Corrigir Cor do Embed do Webhook do Discord Aparecendo Preta em Vez do Código Hex
🔍 WiseChecker

Corrigir Cor do Embed do Webhook do Discord Aparecendo Preta em Vez do Código Hex

Ao enviar uma mensagem de webhook para o Discord com um embed personalizado, a barra de cor à esquerda pode aparecer preta mesmo que você tenha fornecido um código hex válido. Esse problema ocorre porque o valor da cor no seu payload JSON não está formatado corretamente ou o código hex está sem o prefixo necessário. Este artigo explica a causa exata do problema da cor preta e fornece comandos passo a passo para corrigir seu código de webhook para que o embed exiba a cor desejada.

Principais Conclusões: Corrigir Cor Preta no Embed do Webhook do Discord

  • Converter código hex para inteiro decimal: O Discord exige que o valor da cor seja um inteiro decimal, não uma string hex com símbolo de hash.
  • Remover o símbolo # antes da conversão: O código hex deve ser limpo do prefixo # antes de converter para decimal.
  • Usar uma calculadora ou função de programação: Converta o valor hex para decimal usando uma ferramenta como parseInt() em JavaScript ou int() em Python.

ADVERTISEMENT

Por que a Cor do Embed Aparece Preta em Vez do Seu Código Hex

A API de webhook do Discord espera que o campo color no objeto embed seja um inteiro, não uma string. Se você enviar um código hex como #FF5733 como string, o Discord não consegue interpretá-lo e usa preto como padrão. O mesmo acontece se você enviar o código hex como string sem o símbolo de hash, como "FF5733".

O valor correto deve ser um inteiro decimal entre 0 e 16777215. Por exemplo, o código hex #FF5733 converte para o inteiro decimal 16737075. Quando você envia esse inteiro no payload JSON, o Discord renderiza o embed com a cor correta.

Como o Discord Processa o Campo de Cor

A API do Discord analisa o campo color como um valor RGB de 24 bits. O inteiro representa os canais vermelho, verde e azul combinados. Se o campo estiver ausente, nulo ou for uma string, o Discord usa preto como padrão. A API não realiza nenhuma conversão de strings hex para inteiros.

Equívoco Comum Sobre Códigos Hex

Alguns desenvolvedores assumem que o Discord aceita strings hex porque outras plataformas aceitam. O Discord nunca aceitou strings hex no campo de cor. A documentação da API afirma explicitamente que a cor deve ser um inteiro. Enviar uma string hex, mesmo com o símbolo de hash, sempre resultará em um embed preto.

Passos para Corrigir a Cor Preta do Embed

Siga estes passos para corrigir o valor da cor no seu payload de webhook.

  1. Identifique o código hex da cor que deseja usar
    Anote o código hex sem o símbolo de hash. Por exemplo, se você quer a cor #00FF00, anote 00FF00.
  2. Converta o código hex para um inteiro decimal
    Use uma função de programação ou um conversor online. Em JavaScript, use parseInt("00FF00", 16) que retorna 65280. Em Python, use int("00FF00", 16). No Excel, use HEX2DEC("00FF00").
  3. Substitua o campo color no seu payload JSON
    Altere o valor da cor de string para o inteiro decimal. Antes: "color": "#00FF00". Depois: "color": 65280.
  4. Envie a requisição de webhook novamente
    Use sua URL de webhook e o payload JSON corrigido. O embed agora deve exibir a barra de cor verde em vez de preta.

Exemplo: Payload JSON Correto

Aqui está um exemplo completo de um payload de webhook funcional com a cor laranja (#FFA500 convertido para 16753920).

{
  "embeds": [
    {
      "title": "Pedido Confirmado",
      "color": 16753920,
      "fields": [
        {
          "name": "ID do Pedido",
          "value": "12345"
        }
      ]
    }
  ]
}

ADVERTISEMENT

Se a Cor do Embed Ainda Aparecer Preta Após a Correção

Se você converteu o código hex para um inteiro decimal mas o embed continua preto, verifique estes três erros comuns.

Valor Inteiro Excede 16777215

O inteiro de cor do Discord deve estar entre 0 e 16777215. Se o seu valor decimal for maior, a API o ignora e usa preto como padrão. Por exemplo, um código hex como #FFFFFF converte para 16777215. Um valor de 16777216 ou maior falhará. Use um conversor online para verificar se seu valor decimal está dentro do intervalo.

Campo de Cor Colocado Dentro de uma String

Certifique-se de que o valor da cor não está entre aspas no JSON. Strings JSON são delimitadas por aspas duplas. Se você escrever "color": "16737075", o Discord trata como string e usa preto como padrão. O formato correto é "color": 16737075 sem aspas ao redor do número.

Payload JSON Contém Objetos Aninhados Extras

O campo color deve ser filho direto do objeto embed. Se você acidentalmente aninhá-lo dentro de outro objeto, o Discord não consegue encontrá-lo. Verifique se sua estrutura JSON corresponde ao exemplo acima. Use um validador JSON para garantir que o payload esteja formatado corretamente.

Formatos de Valor de Cor do Webhook do Discord: Inteiro vs String Hex

Item Inteiro (Correto) String Hex (Incorreto)
Exemplo de valor 16737075 “#FF5733” ou “FF5733”
Aceitação da API do Discord Renderiza a cor Usa preto como padrão
Tipo de dado no JSON Número (sem aspas) String (com aspas)
Conversão necessária Nenhuma Deve converter para inteiro

Depois de corrigir o campo color para um inteiro decimal, seu embed de webhook exibirá a cor desejada. Teste seu payload com um embed simples antes de adicionar campos complexos. Use a função parseInt() ou int() para converter códigos hex rapidamente. Para uso avançado, considere construir uma ferramenta de seletor de cores que forneça o valor decimal diretamente.

ADVERTISEMENT