Você está na página 1de 13

7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design,

Design, Back-end e Front-end tudo em…

HTML JAVASCRIPT CSS BACK-END SOFT SKILL EXTRAS MAIS CATEGORIAS

SEU PRIMEIRO BOT PARA O TELEGRAM

Nesse artigo vamos mostrar o desenvolvimento de um BOT muito simples utilizando a API do
Telegram.

por Rafael Augusto 12/05/2017 Seja o primeiro a comentar!

~ 4 min. / 760 palavras

Os BOTS de chats hoje já são uma realidade, eles já estão presentes nos aplicativos de mensagens do seu
celular, e com certeza você já ficou curioso em como alguns deles são desenvolvidos. Nesse artigo, vamos
mostrar o desenvolvimento de um BOT muito simples utilizando a API do Telegram.

Artigo adaptado de Bot Telegram

Criando o seu BOT


Para esse simples exemplo será utilizado o JavaScript na plataforma NodeJS em conjunto com a API do
Telegram, caso você não esteja familiarizado com essa plataforma, você pode conferir esse ótimo artigo aqui
do Tableless Como instalar Node.js no Linux corretamente

Execute o seguinte comando no terminal/prompt de comando, para fazer a instalação da API do Telegram:

npm install node-telegram-bot-api --save

Depois, vamos incluir o mesmo em nosso index.js da seguinte forma:


66
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 1/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…

const TelegramBot = require( `node-telegram-bot-api` )

const TOKEN = `SEU TOKEN`

const bot = new TelegramBot( TOKEN, { polling: true } )

Gerando o Token
Para gerar o nosso token, será necessário falar com o @BotFather

66
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 2/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…

66
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 3/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…

Execute o seguinte comando: /newbot e siga as instruções:

Agora, vou incluir o token na minha configuração:

const TelegramBot = require( `node-telegram-bot-api` )

const TOKEN = `373045955:AAGvpCeqMocpkDgrdqjebqK5ZiV24vDifZU`

const bot = new TelegramBot( TOKEN, { polling: true } )

Entenda como o BOT funciona


66
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 4/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…

Agora que já temos o nosso BOT configurado, vamos entender um pouco como ele funciona. Vamos
começar criando o comando mais básico que ele possa entender.

bot.on('message', function(msg){
console.log('msg', msg)
})

Inicie o nosso BOT com o seguinte comando:

node index.js

Abra a conversa com o seu BOT e digite alguma mensagem para ele da seguinte forma:

O66
resultado no console do Node será o seguinte:
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 5/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…

{ message_id: 2,
from:
{ id: 77586615,
first_name: 'Rafael',
last_name: 'Vicio',
username: 'rafaelvicio' },
chat:
{ id: 77586615,
first_name: 'Rafael',
last_name: 'Vicio',
username: 'rafaelvicio',
type: 'private' },
date: 1492093704,
text: 'Ola Bot!' }
}

Com essa estrutura você consegue perceber algumas informações importantes, como quem mandou, o que
mandou, entre outras informações.

Criando o seu primeiro comando


O BOT trabalha escutando alguns eventos, para esse simples BOT, nós vamos trabalhar apenas com um
comando básico, que escuta as mensagens enviadas pelo chat e retorna a mesma mensagem para quem
enviou.

Para isso, vamos utilizar o evento onText, que, como você deve estar imaginando, escuta os textos enviados
nas mensagens.

Para mais detalhes sobre os de eventos suportados, você pode consultar a documentação da API: Usage -
node-telegram-bot-api

Um detalhe desse evento é que ele recebe como primeiro parâmetro uma RegEx, o que nos permite verificar o
texto enviado. Vamos ao exemplo:

bot.onText( /\/echo (.*)/, function(msg, match){


console.log( `echo msg: `, msg )
console.log( `echo match: `, match )
})

Rodando a aplicação novamente, e enviando a mensagem ‘/echo oi’ para o BOT, temos o seguinte retorno:

echo msg: { message_id: 7,


66from:
Shares
{ id: 77586615,
https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 6/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…
first_name: 'Rafael',
last_name: 'Vicio',
username: 'rafaelvicio' },
chat:
{ id: 77586615,
first_name: 'Rafael',
last_name: 'Vicio',
username: 'rafaelvicio',
type: 'private' },
date: 1492093704,
text: '/echo oi',
entities: [ { type: 'bot_command', offset: 0, length: 5 } ] }

echo match: [ '/echo oi',


'oi',
index: 0,
input: '/echo oi' ]

A estrutura do ‘msg’ já foi apresentada a você anteriormente, agora fique atento a estrutura do objeto match:

echo match: [ '/echo oi',


'oi',
index: 0,
input: '/echo oi' ]

Ele é simplesmente um array que contém o resultado do match testando a mensagem recebida com a RegEx
que foi definida no onText.

Com isso podemos identificar o que está em cada posição do array:

na posiçao 0: temos o valor total do texto

na posiçao 1: o texto sem a RegEx

na posiçao 2: o índice onde foi encontrada a RegEx

na posiçao 3: a entrada

Como o objetivo do comando /echo é responder com o mesmo texto enviado, o que nos interessa é o item na
posição 1 desse array.

Para fazer o BOT enviar uma mensagem, vamos utilizar a função bot.sendMessage, da seguinte maneira:

bot.sendMessage( id, text )

Portanto,
66 nosso código funciona da seguinte forma:
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 7/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…

var logErrorEcho = function logErrorEcho(msg) {


return function (err) {
return console.log(msg, err);
};
};

var logSuccessEcho = function(msg, match){


return function(data){
console.log( 'Success:', data);
};
};

var sendEcho = function(msg, match){


bot.sendMessage( msg.chat.id, match[ 1 ] )
.then( logSuccessEcho( msg, match ) )
.catch( logErrorEcho( 'Error:') );
};

bot.onText( /\/echo (.*)/, sendEcho);

Com isso, o seu BOT vai ter a função /echo que funciona da seguinte forma:

66
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 8/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…

O código desse projeto está disponível no GitHub do autor.

Aos interessados em continuar os estudos sobre esse assunto, junte-se ao nosso grupo no Telegram.

Leia mais aqui no Tableless:


Yarn: A evolução do NPM

Programação funcional em Javascript. Implementando Curry e Compose, com bind e


reduce.

Introdução ao Electron

Processo front-end na Locaweb

Formulários e o Metawebdesign – Parte 1

66
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 9/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…

Você vai gostar de ler:


Yarn: A evolução do NPM

Programação funcional em Javascript.


Implementando Curry e Compose, com
bind e reduce.

Introdução ao Electron

Processo front-end na Locaweb

Formulários e o Metawebdesign – Parte 1

Categorias
tecnologia-e-tendências (315)

geral (297)

artigos (290)

técnicas-e-práticas (269)

javascript (264)

código (213)

browsers (206)

html (191)

css (183)

mercado (121)

66
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 11/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…

SOBRE
SOBRE O TABLELESS

CONTATO

ANUNCIE

SEJA UM AUTOR
66
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 12/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…

FAZEMOS CÓDIGO FRONT-END

ACOMPANHE
WEBINARS

FÓRUM

CANAL NO MEDIUM

CANAL NO TELEGRAM

COMUNIDADE
UDACITY | CURSO DE REACT

FEMUG

MEETUPCSS

PODCAST ZOFE

BRAZILJS

DEVNAESTRADA

FRONT-END BRASIL

Escrito pela e para a comunidade web brasileira. Ajude.


Change privacy settings

66
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 13/13
7/25/2020 Seu primeiro bot para o Telegram - Tableless - Website com artigos e textos sobre Padrões Web, Design, Back-end e Front-end tudo em…

TAMBÉM EM TABLELESS

um ano atrás • 2 comentários um ano atrás • 4 comentários 2 anos atr


Comentário: Se Guia fácil para Afinal
compare com os usar aplica
… localStorage Busin

0 Comentários Tableless 🔒 
1 Entrar

 Recomendar 8 t Tweet f Compartilhar

Ordenar por Mais recentes

66
Shares

https://tableless.com.br/seu-primeiro-bot-para-o-telegram/ 10/13

Você também pode gostar