Este es un mini cursillo que te servirá para aprender los conceptos básicos de Go (crear un proyecto, instalar un paquete, hacer peticiones HTTP, etc.). La idea es hacer un bot de Telegram que te dice cuánto tiempo queda para que llegue el siguiente Tram a tu parada. Este es un proyecto de ejemplo, que puedes ampliar, o incluso, seguir mejorando con proyectos totalmente distintos.

Si quieres usar el bot, puedes hacerlo con una cuenta de telegram desde aquí: https://t.me/tram_alicante_bot

Todo el código está disponible en https://github.com/go-telegram-bot-api/telegram-bot-api

Las herramientas que he utilizado

Como ya he mencionado, el lenguaje de programación será Go. Además, el editor que vamos a usar es Visual Studio Code. Y el sistema operativo Arch Linux.

Cómo funciona la librería de Telegram

Como ya hemos instalado una librería de Telegram para Go, el siguiente paso es usarla, para comunicarnos con los humanos. En este vídeo verás la estructura del código para responder mensajes en Telegram de manera automática.

Ingeniería inversa para “scrapear” datos

En este vídeo verás cómo usar tu navegador para ver cómo funciona una web por dentro, en este caso la del Tram. Con esta información podrás simular que eres un navegador en tu programa en Go, y recibir la información necesaria. Como recibirás un JSON, también vas a aprender como manipular el JSON y herramientas que te van a facilitar la vida.

Scraping de HTML en Go ¡sin librerías

Si te quedaste hasta el final del último vídeo, sabrás que un endpoint de la aplicación NO devuelve JSON, sino HTML. Normalmente usarías una librería de web Scraping como Colly, pero aquí aprenderás a hacerlo sin librerías.

Desplegar el bot GRATIS

Existen multitud de hostings donde podrás alojar tu aplicación de manera gratuita (siempre y cuando no sea muy muy usada). Algunos de estos sitios los podéis ver en este tweet de Midudev

fl0․com - render․com - fly․io - koyeb․com - qoddi․com - netlify․com - vercel․com

En este vídeo pretendo usar fl0.com para que veas un ejemplo de lo sencillo que es hacer accesible tu bot, para que tus amigos lo puedan usar.