Como criar um bot de Discord
Nesta página
Um bot de Discord é um programa que inicia sessão no Discord com a sua própria conta e responde a comandos, modera, joga ou publica novidades. Para criar um são precisas três coisas: uma aplicação no Developer Portal do Discord, algumas linhas de código e um sítio onde esse código possa correr.
Este guia cria um bot funcional com um comando de barra /ping, em Python (discord.py) ou JavaScript (discord.js): escolha a linguagem que conhece.
Passo 1: Crie a aplicação e o token do bot
- Abra o Developer Portal. Aceda a discord.com/developers/applications, crie uma nova aplicação e dê-lhe um nome.
- Obtenha o token. Na página Bot, clique em Reset Token e copie-o. O Discord mostra-o apenas uma vez; se o perder, reponha-o de novo.
- Mantenha o token secreto. É a palavra-passe do bot: quem o tiver controla o seu bot. Nunca o cole em código que partilhe nem o envie para o Git.
Passo 2: Convide o bot para o seu servidor
- Abra a página Installation da sua aplicação.
- Nas definições de instalação predefinidas para servidores, adicione os scopes
boteapplications.commandse as permissões de que o bot precisa: Send Messages chega para este guia. - Abra a ligação de instalação fornecida, escolha o seu servidor e autorize. O bot aparece na lista de membros, offline até o seu código correr.
Os tutoriais mais antigos usam OAuth2 > URL Generator com os mesmos dois scopes; continua a funcionar.
Passo 3a: Escreva o bot em Python (discord.py)
O discord.py 2.7 requer Python 3.8 ou mais recente. Instale-o 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"])
Execute-o com o token numa variável de ambiente, por exemplo DISCORD_TOKEN=your-token python bot.py em Linux ou macOS.
Passo 3b: Escreva o bot em JavaScript (discord.js)
O discord.js 14 requer Node.js 18 ou mais recente. Numa pasta nova, execute 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-o com DISCORD_TOKEN=your-token node index.js. Quando a consola mostrar Logged in, escreva /ping no seu servidor.
Mantenha o token fora do código
- Use uma variável de ambiente ou um ficheiro
.env, e adicione.envao.gitignoreantes do primeiro commit. - Se o token for divulgado, reponha-o de imediato na página Bot. O token antigo deixa de funcionar e atualiza o novo onde o bot corre.
- O GitHub analisa os repositórios públicos à procura de tokens de bots de Discord e comunica-os ao Discord, que os pode revogar; por isso, um token enviado por engano muitas vezes deixa de funcionar antes de dar por isso.
Passo 4: Mantenha o seu bot online
O seu bot só está online enquanto o código corre. Feche o terminal ou desligue o PC, e ele fica offline. Tem três opções:
- O seu próprio PC: gratuito e adequado para desenvolver e testar, mas o bot adormece quando o computador adormece.
- Um plano gratuito: a maioria suspende ou limita os bots que correm o mês inteiro; as vantagens e desvantagens são comparadas em alojamento gratuito de bots de Discord.
- Alojamento de bots: um pequeno servidor sempre ligado. No alojamento de bots de Discord da HytHost carrega o seu projeto, escolhe Node.js, Python ou outro runtime, e o painel inicia o bot e reinicia-o se falhar.
O passo a passo completo, do carregamento ao reinício automático, está em como alojar um bot de Discord 24/7.
Corra o seu bot sem deixar o PC ligado: o alojamento de bots de Discord da HytHost suporta Node.js, Python, Java, Go, C#, Bun e Lavalink, desde €0.89/mês.
Ver planos de alojamento de botsPerguntas frequentes
Sim. Criar a aplicação, o token e o código não custa nada, e o discord.py e o discord.js são gratuitos. Só paga se quiser alojá-lo num sítio que fique sempre online.
A que já conhece. O discord.py e o discord.js são ambos maduros e cobrem toda a API do Discord. Se não conhece nenhuma, Python lê-se de forma mais simples; JavaScript tem um ecossistema de bibliotecas maior.
Verifique se o convidou com o scope applications.commands e se o código sincronizou os comandos. Os comandos globais podem demorar um momento a aparecer; se não aparecerem, reinicie o Discord.
Ler o texto das mensagens normais requer o intent Message Content, ativado no Developer Portal e pedido no código. Sem ele, o bot continua a receber comandos de barra, menções e mensagens diretas.
Reponha-o de imediato na página Bot do Developer Portal. O token antigo deixa de funcionar; coloque o novo onde o bot corre e remova o antigo do código ou do histórico.
O seu bot online sem o seu PC
O alojamento de bots de Discord da HytHost corre Node.js, Python, Java, Go, C#, Bun ou Lavalink com base de dados MySQL e cópias de segurança, desde €0.89/mês.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursEste guia foi útil?