[BotTelegram PT.1] Criando seu próprio bot no Telegram usando NodeJS + Deploy na nuvem via Heroku
Tags: bot, telegram, heroku, node
Published: 2020-06-15 00:13:06

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](https://nodejs.org/), e configure o seu Node;
* Como opção para usuários de Ubuntu, [segue um tutorial meu de como instalar o Node versão LTS](https://dev.to/soralan/como-instalar-a-ultima-versao-lts-do-nodejs-no-ubuntu-1pl6)

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](https://github.com/yagop/node-telegram-bot-api) executando o comando:
`npm install --save node-telegram-bot-api`;

###2. Pedindo a benção do Botfather
![The Bot Father](https://i.imgur.com/aUctHak.png)

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](https://i.imgur.com/1uYroRF.gif)

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](https://i.imgur.com/IJc5hzb.png)

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!](https://dev.to/soralan/bottelegram-pt-2-criando-seu-proprio-bot-no-telegram-usando-nodejs-deploy-na-nuvem-via-heroku-1fh)

Outros links que podem ser úteis para desenvolver bots no Telegram:
* [GitHub oficial da API](https://github.com/yagop/node-telegram-bot-api)
* [Documentação Oficial do Telegram sobre a utilização do Bot](https://core.telegram.org/bots/api)
* [Este tutorial que aborda outras funcionalidades](https://github.com/hosein2398/node-telegram-bot-api-tutorial)

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

Alan Pereira
[Meu LinkedIn](https://www.linkedin.com/in/sor-alan/)
[Meu GitHub](https://github.com/sor-alan)
[Meu Instagram](https://www.instagram.com/alanpefab/)