Como criar um bot no Discord
Nesta página
Um bot do Discord é um programa que entra no Discord com a própria conta e responde a comandos, modera, roda jogos ou publica atualizações. Para criar um você precisa de três coisas: um aplicativo no Developer Portal do Discord, algumas linhas de código e um lugar para esse código rodar.
Este guia monta um bot funcional com um comando de barra /ping, em Python (discord.py) ou JavaScript (discord.js): escolha a linguagem que você conhece.
Passo 1: Crie o aplicativo e o token do bot
- Abra o Developer Portal. Acesse discord.com/developers/applications, crie um novo aplicativo e dê um nome a ele.
- Pegue o token. Na página Bot, clique em Reset Token e copie-o. O Discord mostra o token só uma vez; se você perder, redefina de novo.
- Mantenha o token em segredo. Ele é a senha do bot: quem tiver o token controla o seu bot. Nunca cole o token em código que você compartilha nem faça commit dele no Git.
Passo 2: Convide o bot para o seu servidor
- Abra a página Installation do seu aplicativo.
- Nas configurações de instalação padrão para servidores, adicione os scopes
boteapplications.commandse as permissões de que o bot precisa: Send Messages basta para este guia. - Abra o link de instalação gerado, escolha o seu servidor e autorize. O bot aparece na lista de membros, offline até o seu código rodar.
Tutoriais mais antigos usam OAuth2 > URL Generator com os mesmos dois scopes; isso ainda funciona.
Passo 3a: Escreva o bot em Python (discord.py)
O discord.py 2.7 exige Python 3.8 ou mais recente. Instale e crie bot.py:
pip install discord.py
import os
import discord
from discord import app_commands
class Bot(discord.Client):
def __init__(self):
super().__init__(intents=discord.Intents.default())
self.tree = app_commands.CommandTree(self)
async def setup_hook(self):
await self.tree.sync()
bot = Bot()
@bot.tree.command(description="Replies with Pong!")
async def ping(interaction: discord.Interaction):
await interaction.response.send_message("Pong!")
bot.run(os.environ["DISCORD_TOKEN"])
Rode com o token em uma variável de ambiente, por exemplo DISCORD_TOKEN=your-token python bot.py no Linux ou macOS.
Passo 3b: Escreva o bot em JavaScript (discord.js)
O discord.js 14 exige Node.js 18 ou mais recente. Em uma pasta nova, rode npm install discord.js e crie index.js:
const { Client, Events, GatewayIntentBits, REST, Routes, SlashCommandBuilder } = require('discord.js');
const commands = [new SlashCommandBuilder().setName('ping').setDescription('Replies with Pong!').toJSON()];
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once(Events.ClientReady, async (c) => {
await new REST().setToken(process.env.DISCORD_TOKEN).put(Routes.applicationCommands(c.user.id), { body: commands });
console.log(`Logged in as ${c.user.tag}`);
});
client.on(Events.InteractionCreate, async (interaction) => {
if (interaction.isChatInputCommand() && interaction.commandName === 'ping') await interaction.reply('Pong!');
});
client.login(process.env.DISCORD_TOKEN);
Inicie com DISCORD_TOKEN=your-token node index.js. Quando o console mostrar Logged in, digite /ping no seu servidor.
Mantenha o token fora do código
- Use uma variável de ambiente ou um arquivo
.env, e adicione.envao.gitignoreantes do primeiro commit. - Se o token vazar, redefina na página Bot na hora. O token antigo para de funcionar, e você atualiza o novo onde o bot roda.
- O GitHub varre repositórios públicos em busca de tokens de bots do Discord e os informa ao Discord, que pode revogá-los; por isso, um token enviado por engano muitas vezes para de funcionar antes de você perceber.
Passo 4: Mantenha seu bot online
Seu bot só fica online enquanto o código está rodando. Fechou o terminal ou desligou o PC, ele fica offline. Você tem três opções:
- Seu próprio PC: grátis e bom para desenvolver e testar, mas o bot dorme quando o computador dorme.
- Um plano gratuito: a maioria suspende ou limita bots que rodam o mês inteiro; os prós e contras estão comparados em hospedagem gratuita de bots do Discord.
- Hospedagem de bots: um pequeno servidor sempre ligado. Na hospedagem de bots do Discord da HytHost você envia seu projeto, escolhe Node.js, Python ou outro runtime, e o painel inicia o bot e o reinicia se ele travar.
O passo a passo completo, do envio ao reinício automático, está em como hospedar um bot do Discord 24/7.
Rode seu bot sem deixar o PC ligado: a hospedagem de bots do Discord da HytHost suporta Node.js, Python, Java, Go, C#, Bun e Lavalink, a partir de €0.89/mês.
Ver planos de hospedagem de botsPerguntas frequentes
Sim. Criar o aplicativo, o token e o código não custa nada, e o discord.py e o discord.js são gratuitos. Você só paga se quiser hospedá-lo em algum lugar que fique online.
A que você já conhece. O discord.py e o discord.js são maduros e cobrem toda a API do Discord. Se você não conhece nenhuma, Python é mais simples de ler; JavaScript tem o ecossistema de bibliotecas maior.
Confira se você o convidou com o scope applications.commands e se o código sincronizou os comandos. Comandos globais podem levar um tempinho para aparecer; se não aparecerem, reinicie o Discord.
Ler o texto de mensagens normais exige o intent Message Content, ativado no Developer Portal e solicitado no seu código. Sem ele, o bot continua recebendo comandos de barra, menções e mensagens diretas.
Redefina na hora na página Bot do Developer Portal. O token antigo para de funcionar; coloque o novo onde o bot roda e remova o antigo do seu código ou do histórico.
Seu bot online sem o seu PC
A hospedagem de bots do Discord da HytHost roda Node.js, Python, Java, Go, C#, Bun ou Lavalink com banco de dados MySQL e backups, a partir de €0.89/mês.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursEste guia foi útil?