Tutorial

¿Cómo crear un bot de Telegram en NodeJS?

¿Cómo crear un bot de Telegram en NodeJS?

¿Qué es NodeJS?

NodeJS es un entorno en tiempo de ejecución multiplataforma, de código abierto, para la capa del servidor basado en el lenguaje de programación ECMAScript, asíncrono, con I/O (entrada/salida) de datos en una arquitectura orientada a eventos y basado en el motor V8 de Google.

¿Qué es y para qué sirve el archivo "package.json"?

En este archivo, que debe estar en la raíz del proyecto, va a quedar reflejada la configuración del proyecto de NodeJs tales como:

  • Nombre del proyecto.
  • Autor.
  • Versión.
  • Dependencias.
  • Scripts.
  • Repositorio Git.
  • Motor de Node.

¿Qué necesitamos para empezar con el desarrollo de nuestro bot de Telegram en NodeJS?

Lo primero de todo y más importante es descargar nodejs desde su página web oficial: https://nodejs.org/es/

Recomiendo que os descarguéis la versión LTS que es la versión más estable.

Una vez acabado el paso anterior procedemos a crear una carpeta, por ejemplo en el escritorio, en mi caso le voy a llamar a la carpeta test-bot.

Abrimos la carpeta que hemos creados y pulsamos ctrl+shift y con el ratón hacemos click derecho dentro de la carpeta y os debería aparecer la opción de abrir con cmd o powershell.

Abrir Powershell en Windows

Otra opción es abrir cmd y poner cd + la ruta de la carpeta:

Ejemplo:
cd C:\Users\dpefe\Desktop\test-bot

Para empezar a prepara el proyecto empezamos ejecutando el siguiente comando:

npm init

comandos-npm-init

Con este comando se crea un archivo llamado package.json. El contenido del archivo debería tener una estructura simalar a esta:

 {
   "name": "test-bot",
   "version": "1.0.0",
   "description": "Bot para telegram en nodejs",
   "main": "bot.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1"
   },
   "author": "Tecnonucleous",
   "license": "ISC"
 }

Pero tenemos que modificar ese archivo ya que nos sobra el apartado de "scripts". Quedando algo similar a esto:

 {
   "name": "test-bot",
   "version": "1.0.0",
   "description": "Bot para telegram en nodejs",
   "main": "bot.js",
   "author": "Tecnonucleous",
   "license": "ISC"
 }

Una vez acabamos de editar el archivo package.json procedemos a instalar la api de Telegram para nodejs. Se instala con el siguiente comando:

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

instalando api de telegram node

Una vez tenemos esto creamos un archivo llamado bot.js. Dentro de este archivo vamos a meter todo el programa del bot:

const TelegramBot = require('node-telegram-bot-api');

// API Token Telegram
const token = 'Introduce-LA-API-KEY';

// Create a bot that uses 'polling' to fetch new updates
const bot = new TelegramBot(token, {polling: true});

// Cuando mandes el mensaje "Hola" reconoce tú nombre y genera un input: Hola Daniel
bot.onText(/^\/hola/, (msg) => {
     bot.sendMessage(msg.chat.id, "Hola  " + msg.from.first_name);
 });

Para ejecutar el bot una vez tenemos el archivo bot.js configurado solo tenemos que poner en la terminal:

node bot.js

Obteniendo como resultado lo siguiente:

activar-bot

Una vez que el bot se está ejecutando vamos a Telegram y hablamos con el por privado. El saludo del bot también funciona si lo metes en un grupo.

El resultado sería el siguiente:

pepebits-test-hola

Cada vez que le llega la palabra hola, manda un mensaje con la palabra Hola + el nombre del usuario. En próximos tutoriales ampliaremos y explicaremos nuevas funciones.

Más información sobre la Api: https://github.com/yagop/node-telegram-bot-api

Guía Completa: Creación de bots de Telegram en NodeJS

Grupo de Telegram para resolver las dudas sobre los Bots para Telegram en Nodejs: @Tecnonucleous_chat

0 Comentarios 0 Comentarios
0 Comentarios 0 Comentarios