Você quer enviar um único anúncio para vários canais de anúncio em servidores diferentes do Discord sem copiar e colar manualmente a mensagem cada vez. Os webhooks do Discord permitem automatizar essa tarefa, postando o mesmo conteúdo em qualquer canal que aceite webhooks de entrada. Este artigo explica como criar um webhook em um servidor, como configurá-lo para postar em vários canais de anúncio e como configurar o fluxo de crosspost usando um bot ou um script simples.
Principais Conclusões: Usando Webhooks do Discord para Crosspost de Anúncios
- Configurações do Servidor > Integrações > Webhooks: Crie uma URL de webhook para cada canal de anúncio de destino.
- Bot de terceiros como Webhook Manager: Envia a mesma mensagem para várias URLs de webhook de uma só vez.
- Script personalizado com curl ou Python: Automatiza o crosspost sem configuração manual de bot.
O Que é um Webhook do Discord e Como Funciona o Crosspost
Um webhook do Discord é uma forma simples de enviar mensagens automatizadas para um canal de texto específico. Diferente de um bot, um webhook não precisa ficar online ou ouvir comandos. Você cria uma URL de webhook nas configurações do canal, e qualquer aplicativo ou script que envie uma requisição HTTP POST para essa URL entregará uma mensagem ao canal.
Crosspost significa publicar a mesma mensagem em vários canais. No Discord, o recurso nativo de crosspost só funciona dentro do mesmo servidor e apenas para canais de anúncio que são seguidos. Para enviar uma mensagem para canais de anúncio em servidores diferentes, você precisa usar webhooks. Cada canal de destino deve ter sua própria URL de webhook. Você então envia o mesmo payload para cada URL.
A mensagem do webhook pode incluir texto, embeds, arquivos e menções. O Discord aplica os mesmos limites de taxa aos webhooks que às mensagens regulares: uma postagem por segundo por webhook. Para crosspost em muitos canais, você deve espaçar as requisições ou usar uma fila.
Pré-requisitos para Configurar Crosspost com Webhooks
Antes de começar, você precisa do seguinte:
- Permissão Gerenciar Webhooks no servidor de origem e em cada servidor de destino. Sem essa permissão, você não pode criar ou usar webhooks.
- O ID ou nome do canal para cada canal de anúncio de destino. Você pode obter o ID do canal ativando o Modo Desenvolvedor em Configurações do Usuário > Avançado.
- Uma ferramenta para enviar requisições HTTP: um bot de terceiros como Webhook Manager, um script personalizado usando curl ou Python, ou um serviço como IFTTT ou Zapier.
- Token de bot do Discord (opcional) se você quiser automatizar o processo com um bot em vez de webhooks puros.
Passos para Criar um Webhook para Cada Canal de Destino
- Abra as Configurações do Servidor no servidor de destino
Vá para o servidor onde você quer que o anúncio apareça. Clique no nome do servidor no canto superior esquerdo e selecione Configurações do Servidor no menu suspenso. - Navegue até Integrações > Webhooks
Na barra lateral esquerda, clique em Integrações e depois em Webhooks. Se você não vir essa opção, não tem a permissão Gerenciar Webhooks. - Crie um novo webhook
Clique no botão Criar Webhook. Dê um nome ao webhook, como “Bot de Crosspost”. Selecione o canal de destino no menu suspenso Canal. Opcionalmente, faça upload de um avatar para o webhook. - Copie a URL do Webhook
Após criar o webhook, clique em Copiar URL do Webhook. Salve essa URL em um arquivo de texto seguro ou gerenciador de senhas. Repita esse processo para cada canal onde você deseja fazer crosspost.
Métodos para Enviar uma Mensagem para Vários Webhooks
Depois de ter todas as URLs de webhook, você precisa de uma forma de enviar a mesma mensagem para cada uma. Abaixo estão três métodos, do mais fácil ao mais flexível.
Método 1: Usar um Bot de Terceiros
Vários bots do Discord são projetados para lidar com múltiplos webhooks. Uma opção popular é o Webhook Manager. Convide o bot para seu servidor de origem e dê a ele as permissões necessárias. Em seguida, use um comando como:
!webhook send <webhook_url_1> <webhook_url_2> --message "Seu texto de anúncio aqui"
O bot envia a mensagem para cada URL de webhook em sequência. Verifique a documentação do bot para a sintaxe exata e recursos adicionais, como suporte a embeds.
Método 2: Usar um Script Personalizado com curl
Se você se sente confortável com a linha de comando, pode usar curl para enviar o mesmo payload para várias URLs. Crie um arquivo de texto chamado webhooks.txt com uma URL por linha. Em seguida, execute este script bash:
#!/bin/bash
MESSAGE='{"content":"Seu texto de anúncio aqui"}'
while IFS= read -r url; do
curl -H "Content-Type: application/json" -d "$MESSAGE" "$url"
done < webhooks.txt
Este script lê cada URL do arquivo e envia o payload JSON. Você pode adicionar um pequeno atraso entre as requisições para evitar limites de taxa, adicionando sleep 1 dentro do loop.
Método 3: Usar um Script Python
Para mais controle, use Python com a biblioteca requests. Instale-a com pip install requests. Em seguida, crie um script como este:
import requests
import json
webhook_urls = [
"https://discord.com/api/webhooks/...",
"https://discord.com/api/webhooks/..."
]
payload = {
"content": "Seu texto de anúncio aqui",
"embeds": [
{
"title": "Título Opcional",
"description": "Descrição opcional"
}
]
}
for url in webhook_urls:
response = requests.post(url, json=payload)
print(f"Enviado para {url}: {response.status_code}")
Este script percorre cada URL e posta o mesmo payload. Verifique o código de status HTTP para confirmar a entrega. Um status 204 significa sucesso.
Problemas Comuns ao Fazer Crosspost com Webhooks
Webhook Retorna 400 Bad Request
Um erro 400 geralmente significa que o payload JSON está malformado. Verifique se o campo content é uma string e se todos os colchetes e aspas estão balanceados. Se você incluir embeds, certifique-se de que o objeto embed segue exatamente a estrutura do Discord.
Webhook Retorna 429 Too Many Requests
O Discord limita requisições de webhook a uma por segundo por webhook. Se você enviar várias requisições muito rapidamente, a API retorna um erro 429. Adicione um atraso de pelo menos um segundo entre as requisições. Para muitos webhooks, use uma fila ou agrupe-os em lotes com uma espera.
A Mensagem Não Aparece no Canal de Destino
Se o webhook retornar 204 mas a mensagem estiver invisível, verifique se o canal de destino não está arquivado ou excluído. Confirme também se o webhook ainda está ativo. Você pode testar enviando uma mensagem simples com curl diretamente para uma URL de webhook.
A URL do Webhook Foi Exposta ou Vazada
Qualquer pessoa com a URL do webhook pode enviar mensagens para aquele canal. Se uma URL vazar, exclua o webhook em Configurações do Servidor > Integrações > Webhooks e crie um novo. Nunca compartilhe URLs de webhook em canais públicos.
Webhook do Discord vs Recurso Nativo de Crosspost
| Item | Crosspost com Webhook | Crosspost Nativo (Seguir) |
|---|---|---|
| Escopo | Qualquer canal em qualquer servidor | Apenas canais de anúncio dentro do mesmo servidor ou servidores seguidos |
| Complexidade de configuração | Requer criar webhooks e um método de envio | Simples botão de seguir com um clique no canal de anúncio |
| Formato da mensagem | Texto personalizado, embeds, arquivos | Apenas a mensagem original do canal de anúncio |
| Automação | Totalmente automatizável via scripts ou bots | Publicação manual por um moderador |
| Limites de taxa | 1 requisição por segundo por webhook | 5 publicações por hora por canal |
Agora você pode enviar um único anúncio para vários servidores do Discord usando webhooks. Escolha o método que se adequa ao seu nível técnico: um bot pronto para simplicidade, um script curl para postagens rápidas e únicas, ou um script Python para controle total. Lembre-se de rotacionar as URLs dos webhooks se elas forem expostas e de respeitar os limites de taxa do Discord. Para automação avançada, combine webhooks com eventos do servidor usando a API de Log de Auditoria do Discord para acionar crossposts automaticamente quando um novo anúncio for publicado.