Cómo crear un bot para Telegram

por:

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.

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:

El padre de todos los bots de Telegram

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:

La ayuda del bot de telegram

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:

Obteniendo nuestro token para nuestro bot de Telegram

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:

Iniciando conversacion con el bot de Telegram

Primera respuesta de 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:

Programando una funcion loro en nuestro bot

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”

  1. 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 🙁

    Responder
  2. 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?

    Responder
    • 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.

      Responder
  3. Luis

    Que mas comandos puedo dictarle a mi bot con node

    Responder
  4. Luis

    Que mas comandos puedo dictarle a mi bot

    Responder
    • 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.

      Responder
  5. Paúl Cuichan

    Y como el boot puede iniciar la conversacion

    Responder
    • 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.

      Responder
  6. David

    hola, que significa “configurarlo en nuestro node” ? es que estoy intentando hacer un bot en telegram, y no se como hacerlo. un saludo

    Responder
    • 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.

      Responder
      • 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?

        Responder
        • 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.

          Responder

Deja una Respuesta