Como criar um chatbot no Discord
Um bot do Discord pode fazer tudo o que está disponível em outros canais, além de interagir diretamente com seu servidor: responder em canais, threads e mensagens diretas, adicionar reações, receber e enviar arquivos, e editar ou excluir suas próprias mensagens. Recursos adicionais incluem moderação (timeouts, expulsões, banimentos e exclusão de mensagens), gerenciamento de cargos, criação de canais para tickets e comandos de barra.
A configuração leva cerca de dez minutos e consiste em duas partes: primeiro, crie o bot no lado do Discord, depois conecte-o ao seu projeto no Mavibot.
Etapa 1. Criar um aplicativo
Abra o Discord Developer Portal e clique em New Application. Digite um nome — os membros do servidor o verão.
Na seção Installation, defina Install Link como None. Você mesmo criará o link de instalação do bot na Etapa 4 com as permissões necessárias.
Etapa 2. Configurar o bot
Vá para a seção Bot.
Desative Public Bot. Caso contrário, qualquer pessoa poderá adicionar seu bot ao servidor dela.
Ative os intents privilegiados necessários — sem eles, o Discord não enviará certos dados ao bot:
| Intent | Por que é necessário |
|---|---|
| Message Content Intent | Texto da mensagem. Sem ele, o bot pode ver que uma mensagem foi enviada, mas não pode ver seu conteúdo, então os gatilhos baseados em texto não funcionarão. |
| Server Members Intent | Eventos de membros: entradas, saídas, mudanças de cargo e alterações de apelido. Sem ele, as saudações de novos membros e a atribuição automática de cargos não funcionarão. |
| Presence Intent | Status online. Não é necessário para o funcionamento do bot e não precisa ser ativado. |
Etapa 3. Obter o token do bot
Na mesma seção Bot, clique em Reset Token e copie o token que aparece. Ele é exibido apenas uma vez — salve-o, pois você precisará dele na Etapa 6.
Importante! O token fornece acesso total ao seu bot. Não o publique ou compartilhe. Se o token for comprometido, clique em Reset Token novamente. O token antigo parará de funcionar imediatamente e você precisará reconectar o bot no Mavibot usando o novo token.
Etapa 4. Selecionar permissões
Abra OAuth2 → URL Generator.
Em Scopes, selecione:
-
bot— o próprio bot; -
applications.commands— se você planeja usar comandos de barra. Sem esse escopo, os comandos não podem ser registrados no servidor.
A seção Bot Permissions aparecerá abaixo. Selecione apenas as permissões que seu bot realmente precisa — é melhor não conceder permissões desnecessárias.
Permissões mínimas para mensagens
| Permissão | O que não funcionará sem ela |
|---|---|
| View Channels | O bot não conseguirá ver os canais |
| Send Messages | O bot não conseguirá responder |
| Read Message History | Respostas a mensagens e citações não funcionarão |
| Embed Links, Attach Files | Links com pré-visualizações e arquivos não serão enviados |
| Add Reactions | O bot não conseguirá adicionar reações |
Permissões adicionais para moderação e automação
| Permissão | Para que é usada |
|---|---|
| Manage Messages | Excluir mensagens de outros usuários e gerenciar mensagens fixadas |
| Moderate Members | Timeouts (silenciamentos) |
| Kick Members | Remover membros do servidor |
| Ban Members | Banir e desbanir membros |
| Manage Roles | Atribuir e remover cargos |
| Manage Nicknames | Alterar apelidos de membros |
| Manage Channels | Criar e excluir canais, incluindo canais de tickets |
| Create Instant Invite | Criar links de convite |
As permissões também podem ser alteradas posteriormente nas configurações do cargo do bot no servidor, sem precisar reconectar o bot.
Etapa 5. Adicionar o bot ao seu servidor
Copie a URL gerada na parte inferior da página URL Generator, abra-a no seu navegador e selecione o servidor.
Apenas o proprietário do servidor ou um membro com a permissão Manage Server pode adicionar o bot.
Após adicionar o bot, verifique a ordem dos cargos:
Server Settings → Roles
O cargo do bot deve estar posicionado acima dos cargos que ele atribuirá e acima dos cargos dos membros que ele precisa moderar.
Esta é uma restrição do Discord: um bot não pode atribuir um cargo que esteja no mesmo nível ou acima do seu próprio cargo, e não pode aplicar timeout ou banir um membro cujo cargo seja superior ao cargo do bot.
Etapa 6. Deixar o campo Interactions Endpoint URL vazio
Volte para a seção General Information do seu aplicativo e certifique-se de que o campo Interactions Endpoint URL esteja vazio.
Se algo for especificado neste campo, o Discord para de enviar cliques em botões e interações de comandos de barra para o bot — eles são enviados para a URL especificada.
Da perspectiva do usuário, isso parece que os botões nas mensagens do bot não estão funcionando, enquanto os comandos de barra retornam "Application did not respond."
Etapa 7. Conectar o bot ao seu projeto
No seu projeto Mavibot, abra a seção Channels, clique em Discord e cole o token da Etapa 3.
Após alguns segundos, o bot deve aparecer online no seu servidor do Discord. Se não aparecer, certifique-se de que o token foi copiado completamente e não contém espaços extras.
Verificar se tudo funciona
Envie uma mensagem em qualquer canal do servidor que deva acionar uma das respostas do seu bot — o bot deve responder.
Se o bot estiver online, mas não responder, provavelmente o Message Content Intent não está ativado.
Entre no servidor usando outra conta ou peça a um colega para entrar — a saudação de novo membro deve ser acionada. Se não for, verifique o Server Members Intent.
Clique em um botão em uma mensagem do bot. Se nada acontecer, verifique o Interactions Endpoint URL.
Coisas importantes a saber
Uma conversa de canal é compartilhada por todos
Todos os membros do canal escrevem na mesma conversa, como em um chat em grupo.
Variáveis como "quem enviou a mensagem" referem-se ao autor da mensagem mais recente e são substituídas pela próxima mensagem — leia e processe-as imediatamente no mesmo bloco.
Mensagens diretas com o bot e eventos de membros, como entradas, saídas e mudanças de cargo, são tratados em uma conversa separada para esse membro.
Mensagens diretas são restritas pelo Discord
Um bot pode enviar uma mensagem direta a um membro apenas se o membro compartilhar um servidor com o bot e não tiver desativado as mensagens diretas de membros do servidor nas configurações de privacidade.
Se o membro tiver desativado as mensagens diretas, a mensagem não poderá ser entregue — esta é uma restrição do Discord e não pode ser contornada.
Dados completos do webhook
Se você atribuir qualquer valor à variável save_webhook, todos os dados de eventos recebidos serão salvos na variável discord_webhook.
Isso raramente é necessário — quase tudo que você pode precisar do webhook já está disponível por meio de variáveis separadas.
Problemas comuns
| O que acontece | Por quê |
|---|---|
| O bot está online, mas não responde a texto | Message Content Intent não está ativado |
| Eventos de entrada, saída e mudança de cargo não são recebidos | Server Members Intent não está ativado |
| Botões não funcionam e comandos de barra retornam "Application did not respond" | Interactions Endpoint URL está preenchido |
| Comandos de barra não podem ser registrados | O bot foi adicionado sem o escopo applications.commands — gere uma nova URL de instalação e adicione o bot novamente |
| O bot não pode atribuir um cargo | O cargo do bot não está acima do cargo alvo, ou o bot não tem Manage Roles. Cargos gerenciados por integrações, incluindo cargos de outros bots, e o cargo @everyone não podem ser atribuídos |
| O bot não pode aplicar timeout ou banir um membro | O cargo do membro é superior ao cargo do bot, ou o bot não tem Moderate Members / Ban Members |
| O bot não pode ver um canal específico | As permissões de nível de canal substituem as permissões de nível de servidor. Verifique as permissões do cargo do bot nas configurações desse canal |
| Mensagens não podem ser excluídas | O bot não tem Manage Messages. O Discord permite exclusão em massa apenas para mensagens com menos de 14 dias |
O que vem a seguir
Um chatbot do Discord suporta os mesmos recursos principais que bots em outros canais: pode enviar mensagens para canais, threads e mensagens diretas, adicionar reações, enviar e receber anexos, e editar ou excluir suas próprias mensagens.
Para funções de gerenciamento de servidor disponíveis no fluxo do seu bot, consulte "Discord API Functions."
Para aprender a construir o fluxo de mensagens em si, consulte "How to Create a Chatbot for Business."
Para permitir que a IA se comunique com clientes no Discord, ative um AI Assistant — consulte a seção "AI Assistant."