Como crear un bot de Telegram: 01 - BotFather y primeros pasos

in #hive-1068172 years ago

bot telegra.png

Ando practicando con las librerías de Hive, pero al mismo tiempo ando interesado por retomar y mejorar mis conocimientos para la creación de bots de Telegram, asi que voy a hacer un bot de Telegram con el que le iremos poniendo diversas funciones de Hive e iré explicando paso a paso como se puede ir desarrollando por si te interesa el tema y quieres intentar crear el tuyo.

Claro, para esto debes de tener conocimientos en programación de preferencia de NodeJS/JavaScript, aunque sea lo basico, además que una de las ventajas de Telegram es que te permite usar diferentes lenguajes de programación para que no te sientas limitado. Teniendo librerías para PHP, NodeJS, Rust, Python, Ruby, Swift, Kotlin, Java, GO, y más lenguajes[1]. Por lo general escogería la librería en Ruby, pero como la versión de Ruby que uso no funciona la librería de Hive, entonces optaré por la de Node.js para que todo sea full JavaScript, en párrafos mas adelante mencionaré la librería en concreto que usaré. Ya en un futuro y con otro tipo de bot mostrare como crearlo con Ruby

image.png

Creando el bot en BotFather

Antes que nada tenemos que crear nuestro bot desde Telegram para que nos dé nuestro token que es el que vamos a usar para que pueda reconocer que es nuestro bot el que está llamando a la API de Telegram, para ello tenemos que ir al bot: BotFather para decirle que crearemos nuestro bot

image.png

Ahí podemos ver los diferentes comandos que podemos usar, el que nos interesa es justamente el de /newbot, para que creemos nuestro bot, para ello le damos click, y nos pedirá que escribamos el nombre de nuestro bot, que para el caso del "tutorial" pondre el nombre del "Shadow Myst bot", pero utilizaré el bot que cree llamado "Escuadron 201". Despues de ponerle nombre tienes que colocarle el nombre de usuario el cual debe terminar con "bot", para mi caso quedo como "shadowmystbot".

Te terminará dando tu token 540xxxxxxxxxxxxxxxxx que debes de guardar muy bien pues de perderlo cualquiera podría crear un código y comunicarlo a tu bot, así que no lo pierdas

Usando la librería Telegraf.js

Telegraf.js es la librería que pienso usar, no solo por lo fácil que es usarla, sino también por lo actualizada que está, ya que a semanas de que salió la versión 6.0 de la API de los bots de Telegram, está término actualizándose, por lo que podremos usar todo lo nuevo de Telegram sin problema alguno.

Bueno, después de tanta introducción iniciemos con el código, empezando con descargar la librería, lo normal seria con NPM, pero yo usare yarn, de todas formas en la documentación podrás encontrar todas las formas, asi que usare yarn add telegraf y yarn add dotenv para guardar la variable del token que nos dio botfather y no tendremos que requerirlo en todo momento que iniciemos las pruebas de nuestra aplicación. Usemos un ejemplo sencillo para que funcione nuestro programa


import dotenv from 'dotenv';
dotenv.config();

import { Telegraf } from 'telegraf';

const bot = new Telegraf(process.env.TOKEN);
bot.start((ctx) => ctx.reply('Bienvenido a Escuadron 201'));
bot.help((ctx) => ctx.reply('Pronto se listaran todos los comandos de ayuda'));

Con dotenv como les mencione ya no necesitamos andar cargando nuestro TOKEN, ya solo en un archivo ".env" guarde la info del TOKEN, y ya lo podemos llamar en la parte que dice const bot = new Telegraf(process.env.TOKEN);.

Aqui solo hay comandos sencillos, pero con ellos podemos darnos cuenta que el bot comienza a funcionar. Con bot.start cuando en nuestro bot alquien ponga /start le llegara el mensaje de "Bienvenido a Escuadron 201" y asi el mensaje cuando alguien ponga /help recibirá otro tipo de mensaje.

image.png

En próximos posts iremos agregando la complejidad y conociendo mas comandos que nos dé la librería Telegraf, les recomiendo leer la documentación y si tienen cualquier duda preguntarme, espero que les haya gustado el post



  1. La página con todas las librerías disponibles puedes encontrarlas aquí, te recomiendo que la guardes en favoritos, ya que luego es difícil encontrarla entre toda la documentación de Telegram

Sort:  

Recuerdo una vez que intente hacer un bot en Telegram, pero todo hecho desde otros bot de Telegram, nada de código externo, me funcionaba para lo que lo quería, una vez no recuerdo que hice, creo que había eliminado la cuenta de Telegram que tenía ese bot y se murió, jamás lo volví hacer jajajajaja.

Se ve interesante el hacerlo a código, me tocará en su momento buscar las dependencias y librerías para .NET con C#, y enlazarlo talvez a un videojuego.

Un abrazo fuerte, muy buen post, hay que demostrar que la programación no es ese monstruo que todo piensan, es una realacion Amor/Odio jajajaja, apesar de todo se disfruta.

Dando una vista a la pagina de librerias encontre esta https://github.com/TelegramBots/Telegram.Bot que se usa justamente para C#, asi que le puedes hechar un ojo y asi no tengas que hacer tu bot con otros bots jeje,

Desde hace tiempo quiero aprender C#, pero siempre lo termino posponiendo jejeje, al igual que el python

Que genial está todo, ya guarde el link muchas gracias.

A decir verdad yo soy de esos pocos o únicos programadores, que se casan con un lenguaje, se que no se debe hacer pero... Amo C# jajajajaja, me toca aprende Python porque quiero hacer IA únicas para videojuegos, aparte se enlaza muy bien con Unity

Me pasa lo mismo con Ruby, empece odiando el lenguaje y ahora no lo puedo dejar

Me recuerda una frase que me han dicho mucho, "No te cases con un lenguaje" yo por dentro "cayese" jajaja

pero de Ruby a python es poca la diferencia por lo que he visto.

Está muy interesante tu post hermano y muy útil, recuerdo hace un tiempo unos amigos y yo intentamos programar un bot y fue un completo fail JAJAJAJAJA, gracias por el post!

Jejeje si tambien en mis primeros intentos me resultaron un fail, pero no me rendire, esta vez hare el bot definitivo jeje

En su momento investigue y creo que si programe el hola mundo en telegram. pero lo deje mi idea era una web de tienda anclada a telegram para ver la pagina web hacer consultas y eso pero pues toma su tiempo ordenar todo eso. buen post me gusto (y)

Si va a tomar su tiempo construir un buen bot, pero veamos que podemos hacer jejeje, ahortia este que estoy construyendo sera por diversion y para tener algunas funciones que tenga con Hive

Esta idea es una motivación para que cada vez más personas se inicien al mundo de la programación que practicamente está en la gran mayoría de nuestro campo visual. Gracias por compartir esta valiosa información @shadowmyst

Bueno, me encantaria que mas gente se interese a la programación, pues siento que la programacion es una herramienta que te puede ayudar a facilitar las cosas