Corrigir URL de imagem de embed do Discord removida em domínios específicos
🔍 WiseChecker

Corrigir URL de imagem de embed do Discord removida em domínios específicos

Ao enviar embeds por webhook no Discord, você pode notar que URLs de imagem de certos domínios são removidas ou não aparecem como prévia. O embed mostra o texto e o título corretamente, mas o campo de imagem fica em branco ou exibe um ícone de link quebrado. Isso acontece porque o serviço de embed do Discord restringe o carregamento de imagens de domínios específicos por motivos de segurança e desempenho. Este artigo explica por que o Discord remove URLs de imagem de certos domínios e fornece correções passo a passo para garantir que as imagens do seu webhook sejam exibidas corretamente.

Principais conclusões: corrigir restrições de URL de imagem em embeds do Discord

  • Lista de permissões do proxy de imagens do Discord: Apenas imagens de domínios aprovados são armazenadas em cache e exibidas em embeds; todas as outras são removidas.
  • Use uma URL de imagem direta de um domínio permitido: Altere sua fonte de imagem para um domínio como i.imgur.com, cdn.discordapp.com ou media.giphy.com.
  • Auto-hospedagem com proxy ou CDN: Roteie sua imagem por um serviço como Cloudflare ou uma CDN de imagens dedicada para contornar as restrições de domínio.

ADVERTISEMENT

Por que o Discord remove URLs de imagem de domínios específicos

O Discord usa um proxy de imagens interno para carregar imagens em embeds. Esse proxy armazena em cache imagens de uma lista de permissões de domínios confiáveis. Quando o embed do seu webhook inclui uma URL de imagem de um domínio que não está nessa lista, o Discord remove a URL de imagem do embed. O embed pode ainda mostrar o título, a descrição e outros campos, mas o campo de imagem é ignorado completamente.

A lista de permissões inclui domínios como i.imgur.com, cdn.discordapp.com, media.giphy.com e alguns outros. Domínios que não estão na lista incluem muitos sites pessoais, serviços de hospedagem estática como GitHub Pages e endpoints de CDN personalizados. O Discord não publica a lista completa de permissões, portanto, é necessário testar para confirmar se um domínio funciona.

A causa raiz é a segurança: o Discord só armazena em cache imagens de domínios em que confia para servir conteúdo seguro e estável. Imagens de domínios não listados não são buscadas, armazenadas em cache ou exibidas em embeds. Isso não é um bug, mas uma escolha de design deliberada para proteger os usuários contra links de imagem maliciosos ou quebrados.

Passos para corrigir URLs de imagem removidas em embeds de webhook do Discord

Você tem três abordagens principais para corrigir o problema. Escolha o método que melhor se adapta à sua configuração.

Método 1: Alterar a fonte da imagem para um domínio permitido

  1. Identifique a URL da imagem atual
    Localize a URL da imagem que você está usando no embed do webhook. Pode ser algo como https://exemplo.com/imagens/foto.png.
  2. Faça upload da imagem para um host permitido
    Faça upload da imagem para um domínio conhecido por funcionar com embeds do Discord. Hosts recomendados:
    – Imgur: https://i.imgur.com/
    – Giphy: https://media.giphy.com/
    – CDN do Discord: faça upload da imagem para um canal do Discord e copie o link de https://cdn.discordapp.com/
  3. Atualize a URL da imagem no embed do webhook
    Substitua a URL da imagem antiga pela nova URL permitida no payload do webhook. Por exemplo, altere "image": { "url": "https://exemplo.com/foto.png" } para "image": { "url": "https://i.imgur.com/abc123.png" }.
  4. Teste o webhook
    Envie o webhook para um canal de teste. Verifique se a imagem aparece na prévia do embed.

Método 2: Usar um proxy ou CDN para servir a imagem

  1. Configure um proxy Cloudflare ou um redirecionamento simples
    Crie um subdomínio em um domínio permitido (se você tiver um) ou use um serviço como Cloudflare Workers para fazer proxy da imagem. Por exemplo, configure um worker que busca https://exemplo.com/foto.png e a serve a partir de https://seu-worker.workers.dev/foto.png. Cloudflare Workers não estão na lista de permissões por padrão, mas você pode testar se a URL resultante funciona.
  2. Use uma CDN de imagens dedicada como Cloudinary ou Imgix
    Faça upload da sua imagem para uma CDN que tenha um domínio permitido. Cloudinary, por exemplo, usa https://res.cloudinary.com/, que pode funcionar. Teste o domínio de cada CDN com um embed de exemplo.
  3. Atualize a URL da imagem no embed do webhook
    Substitua a URL da imagem original pela URL do proxy ou CDN.
  4. Teste o webhook
    Envie o webhook e confirme se a imagem carrega.

Método 3: Usar um bot do Discord para postar o embed

  1. Crie um bot do Discord com as permissões necessárias
    Se você controla um bot do Discord, use-o para enviar o embed em vez de um webhook. Os bots podem usar o EmbedBuilder com uma URL de imagem de qualquer domínio. O embed do bot não está sujeito às mesmas restrições de domínio porque o bot envia o embed diretamente para a API do Discord.
  2. Escreva o código do bot para enviar o embed
    Exemplo em Discord.js:
    const embed = new EmbedBuilder().setImage('https://exemplo.com/foto.png');
    channel.send({ embeds: });
  3. Teste o embed do bot
    Execute o bot e verifique se a imagem é exibida no canal.

ADVERTISEMENT

Se o Discord ainda remover a URL da imagem após a correção principal

A URL da imagem não termina com uma extensão de arquivo suportada

O analisador de embed do Discord espera que as URLs de imagem terminem com extensões comuns como .png, .jpg, .gif ou .webp. Se sua URL terminar com uma string de consulta, um fragmento ou nenhuma extensão, o Discord pode não reconhecê-la como imagem. Adicione a extensão correta à URL ou use uma URL que a inclua.

A imagem é muito grande

O Discord limita imagens em embeds a 8 MB de tamanho de arquivo. Se a imagem exceder esse limite, ela será removida. Comprima a imagem para menos de 8 MB usando uma ferramenta de otimização de imagem ou reduza suas dimensões.

Domínio está bloqueado pelos filtros de abuso do Discord

Alguns domínios são explicitamente bloqueados devido a abusos passados. Mesmo que o domínio esteja tecnicamente na lista de permissões, o Discord pode bloqueá-lo se ele tiver sido usado para servir conteúdo malicioso. Mude para um domínio permitido diferente ou use um bot para postar o embed.

Domínios permitidos vs. não permitidos para embeds do Discord

Item Domínio Permitido Domínio Não Permitido
Exibição da imagem no embed Aparece imediatamente Removida ou quebrada
Exemplos i.imgur.com, cdn.discordapp.com, media.giphy.com exemplo.com, seustite.netlify.app, raw.githubusercontent.com
Cache O Discord armazena a imagem em cache Sem cache
Solução necessária Nenhuma Alterar URL, usar proxy ou usar bot

Agora você pode corrigir URLs de imagem removidas em seus embeds de webhook do Discord alternando para um domínio permitido, usando um proxy ou enviando o embed por meio de um bot. Comece testando sua URL de imagem atual em um domínio permitido conhecido, como i.imgur.com. Para controle avançado, considere usar um bot do Discord com a classe EmbedBuilder para contornar completamente as restrições de domínio.

ADVERTISEMENT