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.
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
- Identifique a URL da imagem atual
Localize a URL da imagem que você está usando no embed do webhook. Pode ser algo comohttps://exemplo.com/imagens/foto.png. - 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 dehttps://cdn.discordapp.com/ - 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" }. - 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
- 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 buscahttps://exemplo.com/foto.pnge a serve a partir dehttps://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. - 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, usahttps://res.cloudinary.com/, que pode funcionar. Teste o domínio de cada CDN com um embed de exemplo. - Atualize a URL da imagem no embed do webhook
Substitua a URL da imagem original pela URL do proxy ou CDN. - Teste o webhook
Envie o webhook e confirme se a imagem carrega.
Método 3: Usar um bot do Discord para postar o embed
- 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 oEmbedBuildercom 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. - 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: }); - Teste o embed do bot
Execute o bot e verifique se a imagem é exibida no canal.
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.