En esta entrada os vamos a enseñar a crear un pequeño bot para Telegram paso a paso, centrándonos en la configuración del mismo.
Tabla de contenidos
Instalando el servidor para el Bot
Lo primero de todo necesitamos crear la infraestructura con la que se va a ejecutar el bot, en mi caso voy a utilizar Node.js y el bot va a estar programado en JavaScript. Lo único que necesitamos es ejecutar el siguiente comando para que nos instale el módulo para poder manejar la API de Telegram:
npm install node-telegram-bot-api
Creando nuestro primer bot
Ahora lo que necesitamos es abrir Telegram y buscar al creador de bots de Telegram, para ello buscamos por @BotFather:
Lo primero que deberíamos hacer es consultar la ayuda, para ver como funciona. Para ello simplemente hay que abrir una conversación con él y usar /help:
Ahora lo único que necesitamos es escribir /newbot e ir siguiendo las indicaciones para obtener token de acceso para la API de Telegram de nuestro bot:
La parte coloreada es el token, esto deberemos mantenerlo en secreto porque es la clave para hacer que nuestro bot funcione. Para comprobar que este funciona correctamente lo único que necesitamos es visitar la siguiente página:
https://api.telegram.org/bot139208008:AAEyqBllGK8VfhPS_yW3IX8CP6aS4-R9k9c/getUpdates?offset=0
Configurando el bot
Ahora ya tenemos creado el bot y los datos para manejarlo, así que solo nos falta añadirle la funcionalidad que necesitamos. Para ello creamos el siguiente archivo y lo ejecutamos con nuestro node:
var TelegramBot = require('node-telegram-bot-api');
var token = '139208008:AAEyqBllGK8VfhPS_yW3IX8CP6aS4-R9k9c';
// Setup polling way
var bot = new TelegramBot(token, {polling: true});
bot.on('text', function (msg) {
var chatId = msg.chat.id;
bot.sendMessage(chatId,"Hola Mundo");
});
Primer uso de nuestro bot creado
Ahora lo único que tenemos que hacer es abrir un chat con nuestro bot creado:
Como veis nuestro bot ya esta vivo.
Creando un bot más complejo
Para crear un bot mejor debemos aprender a usar la API de Telegram. Por ejemplo vamos a programar una función loro, que repita todo lo que decimos:
var TelegramBot = require('node-telegram-bot-api');
var token = '139208008:AAEyqBllGK8VfhPS_yW3IX8CP6aS4-R9k9c';
// Setup polling way
var bot = new TelegramBot(token, {polling: true});
bot.on('text', function (msg) {
var chatId = msg.chat.id;
bot.sendMessage(chatId,msg.from.first_name + " ha enviado " + msg.text);
});
Ahora con mandarle un mensaje, obtenemos lo siguiente:
Esperamos que os haya parecido interesante el artículo y si tenéis alguna duda o queréis mostrarnos vuestras creaciones, dejamos los comentarios abiertos.
16 comentarios en “Cómo crear un bot para Telegram”
Jairo Lima
Hola , puedo hacer que mi bot publique automáticamente mensajes de ofertas de una pagina con el api ? .Cual seria el proceso? ayuda 🙁
SomosBinarios
Programándolo.
Algunas maneras de hacerlo es leyendo las ofertas por RSS o enviandoselas por algun comando y luego que el bot las escriba en un canal o manda a un usuario.
Jairo Lima
Saben algún freeLance que pueda configurarlo ?
SomosBinarios
La verdad es que no conozco a nadie que trabaje haciendo bots.
José Luis
Hola estoy haciendo un bot pero con contenido que no quisiera que se divulgue. Se pueden elegir los usuarios que usarán el bot?
SomosBinarios
Sí, siempre puede comprobar el Id del usuario antes de seguir una conversación con el mismo. Esto lo tendría que hacer por código, ya que, hasta donde yo sé, telegram no permite otra opción.
Luis
hola
Luis
Que mas comandos puedo dictarle a mi bot con node
Luis
Que mas comandos puedo dictarle a mi bot
Jorge
Hola Luis, pues puede reaccionar a cualquier tipo de publicacion, por ejemplo cuando se manda una foto o un video. También le puedes indicar comando del bot por ejemplo @mibot /foto y asociar una función a este comando etc.
Paúl Cuichan
Y como el boot puede iniciar la conversacion
SomosBinarios
Si mal no recuerdo, el bot nunca puede iniciar la conversación con la persona en un grupo, o de dicho intento para evitar el SPAM, por otra parte quizás sea posible que cuando añadas el bot como si fuera un amigo y abras el chat de él, este te hable.
Para ello seguramente haya algún evento o sistema similar que diga que el usuario ya está en su chat.
David
hola, que significa “configurarlo en nuestro node” ? es que estoy intentando hacer un bot en telegram, y no se como hacerlo. un saludo
SomosBinarios
Nosotros utilizamos Node.js para que ejecute el código del bot que está escrito en JavaScript. Lo primero que hacemos es instalar la librería para soportar la API de Telegram mediante Node.js, luego creamos el bot con el asistente de telegram y finalmente le añadimos la funcionalidad (el codigo javascript), guardando esto en un fichero .js que ejecutamos con Node.js
Espero que esto te ayude, no se exactamente a qué parte te referías.
David
Es que tengo poca idea de programación. Mi idea era hacer un bot de telegram para que avisase a los usuarios de una base de datos, que al pasar dos dias sin entrar datos, les enviase un mensaje pidiendo la entrada de datos. Pero sigo sin saber donde instalar la libreria que me dices y de donde consigo el node.js. me lo puedes explicar?
SomosBinarios
Lo primero de todo es decirte que lo que planteas en mi opinión no es nada simple como para hacer sin conocimientos amplios de programación.
Node lo puedes bajar de aqui https://nodejs.org/en/download/
Para instalar la librería debes usar:
npm install node-telegram-bot-api
Además necesitarás conectar de alguna manera esa base de datos con el código de tu bot. Por otra parte un bot no puede interactuar con un usuario si este antes no habla con el, para evitar spam.