Ir al contenido principal

Un bot con Telegram en Termux


En las últimas semanas he retomado un par de ideas que tuve hace algunos años:

  • por un lado la idea de hacer un Bot con el que hacer operaciones a través de comandos específicos. En concreto me gustaría hacer poder realizar comandos de inversión en bolsa (de manera ficticia)
  • por otro lado desplegar la aplicación en un móvil con Termux (emulador de Linux para Android)
Así que os cuento los pasos que he hecho para realizar estas tareas.

Creación de Bot con Telegram

Busca el contacto @BotFather (es el bot oficial de Telegram para crear otros Bots).

Pulsa en Iniciar o escribe /start para comenzar.

Escribe el comando: /newbot

BotFather te pedirá que le pongas un nombre visible a tu Bot. Ejemplo:

Nombre: MiBotJava

Luego te pedirá un username único que termine en Bot. Ejemplo:

Username: MiBotJava_bot

Si el nombre de usuario está disponible, te dará un mensaje de éxito.

Obtén el token
Después de crear el Bot, BotFather te dará un mensaje como este:

Done! Congratulations on your new bot. You will find it at t.me/MiBotJava_bot.
Use this token to access the HTTP API:
123456789:ABCdefGHIjklMNOpqrSTUvwxYZ


¡Este token es lo que necesitas en tu código Java! Guárdalo y no lo compartas.

Código para la creación de un Bot con eco

Esta parte la he subido a mi cuenta de Github, en concreto a este repositorio:


Si lo quieres utilizar solo tienes que hacer un "git clone", editar el fichero bot.properties:

bot.username=tecnificados_bot
bot.token=TU_TOKEN_REAL_AQUI

Guarda los cambios, vuelve al directorio principal, lanza un "maven clean package" y ya tendrás en el directorio target un jar con todas las dependencias para lanzarlo.

Cualquier texto que envíes al bot, te será devuelto, complicación zero.

Pruebas y conclusiones

He estado 5 días con el Termux levantado las 24 horas y con el bot escuchando las peticiones, les pedí ayuda a mis compañer@s del gimnasio para que le dieran caña, y la verdad es que no he notado ninguna variación a nivel de bateria y rendimiento del móvil también es el mismo.

Voy a intentar seguir evolucionando el proyecto y os iré comentando.

Próximo objetivo utilizar https://supabase.com/

Nos vemos pronto!


Entradas populares de este blog

Spring Boot: Página inicial con Bootstrap

  Este es el segundo artículo de la serie sobre Spring Boot que comenzamos hace dos semanas, si quieres ver el primero puedes acceder pulsando aquí . En el primer artículo vimos cómo descargar nuestro proyecto configurado para nuestros intereses y listo para ser importado en nuestro IDE (nosotros usaremos Eclipse ). Lo primero que vamos a hacer es importar el proyecto: File -> Import Existing Maven Projects Seleccionamos el fichero pom.xml en la carpeta donde lo hemos descomprimido y esperamos unos segundos Cuando acabe la importación, esta es la estructura que nos aparecerá: Con Spring Boot no necesitamos configurar el servidor, ya se encarga él de facilitarnos la vida. Lo único que tenemos que hacer es arrancar la clase BootApplication.java , que se encargará de arrancar Tomcat y dejar nuestra aplicación funcionando en el puerto 8080.  Y si todo fuera bien, podríamos acceder a través de la URL:  http://localhost:8080/ Pero ahora mismo tenemos un error de conexión c...

Redirección de puertos en Virtual Box

Continuando con mis anteriores "posts", vamos a terminar nuestro entorno de pruebas redirigiendo los puertos que nos interesan de la máquina virtual a nuestro PC. Con Virtual Box podemos configurar la red de diversas formas, una de ellas es redireccionar los puertos de la máquina virtual a la nuestra. Es bastante fácil y rápido de configurar, y lo que hace es que tengamos unos puertos destinados al entorno de desarrollo y otros para el entorno de pruebas. Ejemplo de uso:  - podemos usar el puerto 8080 para desarrollar en eclipse en nuestro entorno de desarrollo con Tomcat. - usaremos el puerto 80 para el Tomcat del entorno de pruebas Más adelante veremos cómo configurar las redes de virtual box para que sean máquinas independientes conectadas a nuestra red y más opciones. Vamos a hacer la redirección del puerto 22 para poder acceder a nuestra máquina virtual a través de uno de los clientes ssh más extendidos (y con nombre controvertido): ...

ASP.Net MVC: Subida de imágenes al servidor y recorte con Jcrop

Recientemente tuve que incluir, en un proyecto de ASP.Net MVC en el que estoy trabajando, un formulario donde un usuario podía subir su foto al perfil, y si el sistema detectaba que el tamaño de la imagen subida superaba el 100x100, había que recortarla. Esta premisa, aunque parece sencilla, encierra varios problemas técnicos a solucionar: 1) Subida de ficheros al servidor con ASP.Net MVC. 2) Recorte de foto y guardado. 3) Puntos a tener en cuenta: versiones de navegadores y otros aspectos técnicos. Vamos a ir viendo paso a paso cómo implementar esta práctica funcionalidad. Subida de ficheros al servidor con ASP.Net MVC Para subir ficheros al servidor desde la Vista, en Mvc se dispone de la clase System.Web.HttpPostedFileBase.  Para utilizarla, hay que seguir los pasos: - Declarar una propiedad de este tipo en el Model que se va a utilizar: public HttpPostedFileBase Fichero { get; set; } - Crear en la vista el formulario para realizar la subida ...