loading...

[BotTelegram PT.1] Criando seu próprio bot no Telegram usando NodeJS + Deploy na nuvem via Heroku

soralan profile image Alan Pereira Updated on ・3 min read

Bots são uma das ferramentas incríveis do Telegram que o faz se destacar entre os aplicativos de troca de mensagem instantânea. Entre seus muitos usos, os bots podem ser utilizados para:

  1. Envio automático e customizado de mensagens, áudios, arquivos, links (uma forma de ter notícias customizadas de forma automática direto pelo Telegram, por exemplo);
  2. Integrar com diversos serviços como email, música, youtube;
  3. Aceitar pagamentos;
  4. Criar jogos...

Enfim, basicamente os bots no Telegram são limitados apenas pela imaginação, criatividade e habilidade de seu criador. Diante dessa utilidade e da minha pretensão clara de converter o maior número possível de pessoas para essa plataforma incrível, eu resolvi começar essa série de tutoriais onde estarei abordando como desenvolver o seu próprio bot e inserir diversas funcionalidades interessantes usando NodeJS. Então sem mais delongas, mãos à obra!

1. Configurando o ambiente

1.1 Talvez isso pareça óbvio, mas vai mesmo assim: Você precisa ter o NodeJS instalado. Caso não o tenha, visite o site oficial, e configure o seu Node;

1.2 Crie a pasta do seu projeto e o arquivo principal nela, para mim ele se chamará index.js;

1.3 Abra o terminal na pasta e instale esta API que usaremos como base executando o comando:
npm install --save node-telegram-bot-api;

2. Pedindo a benção do Botfather

The Bot Father

Em sua plena ironia, o Telegram possui um bot para a criação de bots. O Botfather é responsável pela criação, edição e gerenciamento de todos os bots. Então tudo que envolva o seu bot dentro de opções do Telegram, você trata direto com ele.

2.1 Dentro do seu Telegram abra uma conversa com @botfather ;

2.2 Para iniciar a conversa com o Botfather, use o comando /start. Uma lista de opções aparecerá para você;

2.3 O comando /newbot irá iniciar uma série de diálogos para a criação do seu bot. Você deverá fornecer o nome e o username (@) do bot;

2.4 Ao final da criação, ele irá te fornecer um TOKEN único para o Bot. Este é uma espécie de senha. Ele é indivudal e a chave para controlar todas as configurações e tudo que o Bot pode fazer, então mantenha esse TOKEN seguro com você

3. Hora do código

gato codando

3.1 Primeiro vá no seu arquivo index.js. Puxaremos a dependência do node-telegram-bot-api:
const TelegramBot = require('node-telegram-bot-api');

3.2 Segundo inseriremos o TOKEN fornecido pelo BotFather:
const TOKEN = 'seu-token-aqui';

3.3 Agora podemos finalmente criar o objeto TelegramBot:
const bot = new TelegramBot( TOKEN, { polling: true });

4. Primeira funcionalidade e rodando o bot

Agora o bot está pronto para rodar, basta fazermos as funcionalidades que desejamos.

4.1 Como primeira funcionalidade para teste, o bot responderá de volta a qualquer mensagem:

//Função 'Mensagem recebida'
bot.on('message', (msg) => {
const chatId = msg.chat.id;
bot.sendMessage(chatId, 'Mensagem recebida');
});

Onde:

  • bot.on é quando o bot perceberá o evento;
  • 'message' o evento a ser percebido;
  • (msg) o parâmetro que foi enviado;
  • const chatId = msg.chat.id o bot identifica o id do chat para responder no chat correto;
  • bot.sendMessage(chatId, 'Mensagem recebida') a função enviar mensagem que receberá o ID do chat e enviará de volta a mensagem 'Mensagem recebida`

Received your message

4.2 Para rodarmos o bot, vá no Terminal de comando na pasta do projeto e execute o index.js atráves do:
node index.js

Por hoje é isso! As próximas partes do tutorial irão abordar a hospedagem grátis do Heroku e mais funcionalidades para o bot.

Você pode conferir a Parte 2 aqui!

Outros links que podem ser úteis para desenvolver bots no Telegram:


Se este link lhe foi útil, deixe seu ❤️

Alan Pereira
Meu LinkedIn
Meu GitHub
Meu Instagram

Posted on by:

soralan profile

Alan Pereira

@soralan

Web developer @ Pólis Civitas | Systems Analysis and Development student @ Unicesumar-Curitiba | Bachelor in economics and now starting as a dev !

Discussion

markdown guide