0% acharam este documento útil (0 voto)
445 visualizações4 páginas

Criando um Bot no Telegram com Node.js

bot, atendimento e envio de documentos.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
445 visualizações4 páginas

Criando um Bot no Telegram com Node.js

bot, atendimento e envio de documentos.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

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

Você também pode gostar