Crie uma pasta para o projeto:
Em seu sistema, crie uma pasta para o projeto, por exemplo, bot-telegram.
Abra o terminal nessa pasta e inicialize o projeto:
npm init -y
Isso cria o arquivo package.json com as configurações do projeto.
Instale a biblioteca node-telegram-bot-api:
Execute no terminal:
npm install node-telegram-bot-api
Passo 2: Criar um Bot no Telegram
1. Acesse o BotFather no Telegram:
Pesquise por BotFather no aplicativo Telegram e inicie uma conversa com ele.
2. Crie um novo bot:
No chat com o BotFather, envie o comando /newbot e siga as instruções para dar um
nome e um nome de usuário (username) para seu bot.
Após criar, o BotFather vai fornecer um Token de API. Guarde este token pois ele
será usado para conectar seu código ao bot.
Passo 3: Configurar o Código do Bot
1. Crie o arquivo principal:
No diretório do projeto, crie um arquivo chamado index.js.
2. Escreva o código básico:
Abra o index.js e cole o seguinte código:
const TelegramBot = require('node-telegram-bot-api');
// Insira o token do seu bot aqui
const token = 'SEU_TOKEN_DO_BOT';
const bot = new TelegramBot(token, { polling: true });
// Mensagem de boas-vindas
bot.onText(/\/start/, (msg) => {
const chatId = msg.chat.id;
bot.sendMessage(chatId, 'Olá! Sou seu bot do Telegram. Como posso ajudar
você?');
});
// Respostas automáticas a comandos específicos
bot.onText(/oi/i, (msg) => {
bot.sendMessage(msg.chat.id, 'Olá! Como vai?');
});
bot.onText(/tchau/i, (msg) => {
bot.sendMessage(msg.chat.id, 'Até logo! Volte sempre.');
});
bot.onText(/ajuda/i, (msg) => {
bot.sendMessage(
msg.chat.id,
'Comandos disponíveis:\n/start - Boas-vindas\n/oi - Cumprimento\n/tchau -
Despedida\n/data - Data atual\n/hora - Hora atual'
);
});
bot.onText(/data/i, (msg) => {
const data = new Date().toLocaleDateString();
bot.sendMessage(msg.chat.id, `A data de hoje é: ${data}`);
});
bot.onText(/hora/i, (msg) => {
const hora = new Date().toLocaleTimeString();
bot.sendMessage(msg.chat.id, `Agora são: ${hora}`);
});
Esse código configura o bot para responder a mensagens como /start, oi, tchau, ajuda, data, e
hora.
Execute o bot:
No terminal, rode o comando:
node index.js
O bot agora deve estar rodando e pronto para interagir com os usuários no Telegram.
Passo 4: Adicionar Funcionalidades Extras
1. Respostas Baseadas em Texto:
O bot também pode responder a mensagens de texto genéricas. Aqui, vamos
adicionar uma resposta padrão para mensagens que não correspondam aos comandos
acima:
bot.on('message', (msg) => {
const chatId = msg.chat.id;
const text = msg.text.toLowerCase();
if (!text.startsWith('/')) { // Ignora comandos
bot.sendMessage(chatId, 'Desculpe, não entendi. Envie "/ajuda" para ver os comandos
disponíveis.');
}
});
Salvar Conversas em um Arquivo (opcional):
Caso queira registrar as conversas, você pode salvar as mensagens em um arquivo de texto
conversas.txt:
const fs = require('fs');
bot.on('message', (msg) => {
const log = `${new Date().toISOString()} - ${msg.from.username || msg.from.first_name}:
${msg.text}\n`;
fs.appendFileSync('conversas.txt', log);
// Resto do código de resposta...
});
Enviar Imagens ou Documentos:
Se você quiser que o bot envie uma imagem ou documento como resposta, basta adicionar o
seguinte código:
bot.onText(/foto/i, (msg) => {
bot.sendPhoto(msg.chat.id, 'caminho/para/sua/imagem.jpg', { caption: 'Aqui está uma imagem!' });
});
bot.onText(/documento/i, (msg) => {
bot.sendDocument(msg.chat.id, 'caminho/para/seu/documento.pdf');
});
Passo 5: Manter o Bot Ativo em Segundo Plano
Assim como no WhatsApp, para manter o bot ativo em segundo plano, você pode usar o PM2:
1. Instale o PM2:
npm install -g pm2
Inicie o bot com PM2:
pm2 start index.js --name bot-telegram
Comandos úteis do PM2:
Verificar status: pm2 status
Reiniciar: pm2 restart bot-telegram
Parar: pm2 stop bot-telegram
Logs: pm2 logs bot-telegram