Como enviar mensagens de Telegram em Node.js via Telegraf

Node.js

Como enviar mensagens de Telegram em Node.js via Telegraf

Luiz Duarte
Escrito por Luiz Duarte em 16/09/2021
Junte-se a mais de 22 mil profissionais de TI

Entre para minha lista e receba conteúdos exclusivos e com prioridade

Mensageria é um baita negócio e não é à toa que algumas das maiores empresas do mundo possuem apps do tipo como Apple, Google e Facebook. Os apps de mensagem revolucionaram toda a indústria de comunicação, transformando o email, SMS e até a própria ligação telefônica em secundários quando o assunto é se comunicar rapidamente com alguém.

Aqui no blog eu já ensinei como enviar mensagens via SMS, como enviar e-mails, como mandar mensagens via WhatsApp e hoje vou lhe ensinar como fazer isso pelo Telegram!

Embora o Telegram não tenha nem perto da popularidade de WhatsApp, é notável que alguns de seus recursos são muito superiores e principalmente, sua atenção aos desenvolvedores interessados em usar a plataforma.

Toda comunicação automatizada pelo Telegram deve ser feita via bots, sendo que a própria empresa criou uma API para esses bot serem implementados corretamente, sem gambiarras como acontece muitas vezes no WhatsApp. Para usufruir dessa API usaremos a biblioteca Telegraf, para Node.js, uma das mais famosas quando o assunto é bots para Telegram.

Uma vez que você entenda como funciona e o que pode fazer com um bot de Telegram, você vai ver que o que vou mostrar aqui, envio de mensagens, é apenas a ponta do iceberg!

Vamos lá!

Curso Node.js e MongoDB

#1 – Setup do Bot

A primeira coisa que você tem de fazer é criar o bot de Telegram que fará o envio de mensagens para você. Para fazer isso, primeiro fale com o BotFather. O BotFather é o bot que lhe ajuda na criação de bots. Após chamar o @BotFather para conversar (pode clicar no link do nome dele), clique em start na tela do Telegram Web.

Vai se abrir uma série de comandos que você pode digitar, e você precisa usar primeiro o /newbot, dando um nome ao seu bot logo em seguida, sendo que ele deve terminar sempre com ‘bot’. O meu vai se chamar LuizToolsBot. Sim, não sou criativo.

Uma vez que termine a criação, você receberá a URL para conversar com seu bot e um token, que você deve salvar para usarmos a seguir no nosso código de interação com o bot. Cuidado, pois quem tiver esse token pode tomar o controle do seu bot!

Antes de avançar, certifique-se de acessar a URL do seu bot e ao menos mande um oi pra ele, já que bots só podem puxar assunto com quem já tiveram uma conversa antes!

Quando fizer isso, acesse o endereço https://api.telegram.org/bot<TOKEN DO SEU BOT>/getUpdates para obter as informações dessa conversa, incluindo o id do chat, que usaremos logo mais para que o bot consiga continuar a conversa. Repare no exemplo abaixo.

Guarde esse número também!

Curso FullStack

#2 – Setup do Projeto

Para este projeto você vai precisar ter o Node.js instalado na sua máquina, recomendo a versão LTS disponível para download aqui. Eu vou usar também o Visual Studio Code, mas você pode usar o editor que quiser. Download aqui.

Uma vez com ambos instalados e funcionando, crie uma nova pasta para o projeto, que eu vou chamar de nodejs-telegram e dentro rode o comando abaixo para inicializar o projeto.

Depois, instale a dependência do Telegraf, com o comando abaixo. O Telegraf é uma biblioteca JavaScript para comunicação no Telegram usando um bot.

Também instalei o pacote DotEnv-Safe, para nos ajudar com as configurações do projeto. Para isso, crie um arquivo .env.example na raiz do seu projeto com o seguinte conteúdo.

Este é o template de variáveis de ambiente obrigatórias no nosso projeto.

Agora crie um arquivo .env na raiz do projeto também, com o conteúdo abaixo. Troque as marcações pelos seus valores.

Agora crie um arquivo index.js que é onde vamos programar usando Telegraf. Ele vai usar as variáveis de ambiente que configuramos para ter acesso ao bot token e ao chat ID.

O código acima carrega as variáveis de ambiente na primeira linha (vai dar um erro caso alguma esteja errada) e inicializa o Telegraf com o token do seu bot.

Na sequência, ele usa o objeto Telegram para enviar uma mensagem, onde o primeiro parâmetro é um número com o ID do seu chat e o segundo é a mensagem em si, que pode ter até 4kb.

Note que este é um projeto muito simples, apenas disparando uma mensagem para um usuário, mas você pode colocá-lo dentro de uma função e chamá-la toda vez que quiser disparar a mensagem, por exemplo.

Ou ainda, definir comandos e deixar seu bot sempre rodando, para ele responder diferentes mensagens conforme o que ele receber.

E por último, você também pode adicionar seu bot em canais e grupos, assim ele pode enviar mensagens para o grupo/canal e várias pessoas receberem ao mesmo tempo. O processo é o mesmo: inicie uma conversa no grupo, pegue o id da conversa e coloque ele no bot.

O céu é o limite e minha missão era apenas lhe dar uma breve introdução no tema.

Um rápido aviso final: não envie mais de uma mensagem por segundo e não mais de 20 mensagens por minuto, caso não queira que seu bot seja bloqueado (erro 429).

Um abraço e até a próxima!

Curso Bot
Curso Bot

TAGS: nodejs

Olá, tudo bem?

O que você achou deste conteúdo? Conte nos comentários.