Empecé a sumergirme en el mundo de TI hace solo tres semanas. En serio, hace tres semanas ni siquiera entendía la sintaxis HTML, y mi introducción a los lenguajes de programación terminó con un currículo escolar de Pascal de 10 años. Sin embargo, decidí ir al campamento de TI, para cuyos hijos sería bueno hacer un bot. Decidí que no era tan difícil.
Esto comenzó un largo viaje, dentro del cual yo:
- desplegó un servidor en la nube con Ubuntu,
- registrado en github
- Aprendí la sintaxis básica de JavaScript
- lea un montón de artículos en inglés y ruso,
- finalmente hizo un bot
- escribió este artículo finalmente.
El resultado final se parecía a esto:

Diré de inmediato, este es un artículo para principiantes, solo para entender cómo hacer cosas básicas desde el punto cero.
Y también, para programadores avanzados, solo para hacerlos reír un poco.
1. ¿Cómo escribir código en JS?Comprendí que vale la pena comenzar con al menos comprender la sintaxis del lenguaje. La elección recayó en JavaScript, simplemente porque el siguiente paso para mí fue crear una aplicación en ReactNative. Comencé con un
curso sobre Codecademy y quedé encantado. Los primeros 7 días son gratis. Proyectos reales. Lo recomiendo Pasarlo tomó alrededor de 25 horas. De hecho, lejos de todo fue útil. Así es como se ve la estructura del curso y el primer bloque está en detalle.
2. ¿Cómo registrar un bot?Al principio,
este artículo del blog de cierto Archakov me ayudó mucho. Él mastica desde el principio. Pero lo principal es que hay una instrucción para registrar un bot. No escribiré mejor, y como esta es la parte más fácil, simplemente escribiré la esencia. Necesita crear un bot y obtener su API. Esto se hace a través de otro bot: @BotFather. Encuéntrelo en el telegrama, escríbalo, siga una ruta simple y obtenga (¡guarde!) Una clave API (este es un conjunto de números y letras). Fue útil más tarde.
3. ¿Cómo se ve el código bot?
Después de un largo estudio de los artículos, me di cuenta de que vale la pena usar algún tipo de biblioteca (código de terceros en formato de módulo) para no molestarme en aprender la API de telegramas y crear grandes piezas de código desde cero. Encontré el marco de telegraf que necesitaba estar conectado de alguna manera a algo usando npm o yarn. Así entendí entonces en qué consiste la implementación del bot. Ríete aquí. No me ofenderé. Los siguientes ejemplos de la parte inferior de la página me ayudaron sobre todo durante la posterior creación del bot:

3. Cómo crear su propio servidor en la nube por 100 rublos
Después de una larga búsqueda, me di cuenta de que el comando 'npm' de la imagen de arriba se refiere a la línea de comando. La línea de comando está en todas partes, pero para ejecutarla, debe instalar NodePackageManager. El problema era que estaba programando en el PixelBook con ChromeOS. Omitiré un bloque grande aquí sobre cómo aprendí Linux: para la mayoría, esto está vacío e innecesario. Si tiene un Windows o MacBook, ya tiene una consola.
En pocas palabras, instalé Linux a través de Crostini.
Sin embargo, en el proceso, me di cuenta de que para que el bot funcione constantemente (y no solo cuando mi computadora está encendida) necesito un servidor en la nube. Elegí vscale.io , lancé 100 rublos, compré el servidor Ubuntu más barato ( ver foto ).

4. Cómo preparar un servidor para lanzar un bot
Después de eso, me di cuenta de que necesito hacer algún tipo de carpeta en el servidor en la que coloque el archivo con el texto del código. Para hacer esto, en la consola (ejecutar directamente en el sitio a través del botón "Abrir consola") conduje
mkdir bot
bot: este se ha convertido en el nombre de mi carpeta. Después de eso, instalé npm y Node.js, lo que me permitirá ejecutar código desde archivos con permiso * .js
sudo apt update sudo apt install nodejs sudo apt install npm
Recomiendo encarecidamente que en esta etapa, configure la conexión al servidor a través de su consola. Aquí están las instrucciones , que le permitirán trabajar con el servidor directamente a través de la consola de su computadora.
5. Cómo escribir el código del primer bot.
Y ahora es solo un descubrimiento para mí. Cualquier programa es solo líneas de texto. Se pueden conducir a cualquier lugar, guardar con la extensión deseada y todo. Eres hermosa Usé Atom , pero realmente, simplemente puedes escribir en el bloc de notas estándar. Lo principal es guardar el archivo en la extensión deseada más adelante. Así es como escribir texto en Word y guardar.
Hice un nuevo archivo, en el que inserté el código del ejemplo en la página de telegraf y lo guardé en el archivo index.js (no es necesario nombrar el archivo de esa manera, pero se acepta). Importante: en lugar de BOT_TOKEN, inserte su clave API del segundo párrafo.
const Telegraf = require('telegraf') const bot = new Telegraf(process.env.BOT_TOKEN) bot.start((ctx) => ctx.reply('Welcome!')) bot.help((ctx) => ctx.reply('Send me a sticker')) bot.on('sticker', (ctx) => ctx.reply('')) bot.hears('hi', (ctx) => ctx.reply('Hey there')) bot.launch()
6. Cómo cargar código al servidor a través de github
Ahora necesitaba cargar de alguna manera este código al servidor y ejecutarlo. Para mí se convirtió en un desafío. Como resultado, después de una larga prueba, me di cuenta de que sería más fácil crear un archivo en github, que llama a actualizar el código usando el comando en la consola. Registré una cuenta en github e hice un nuevo proyecto , donde cargué el archivo. Después de eso, necesitaba entender cómo configurar la carga de archivos desde mi cuenta (¡abierto!) Al servidor en la carpeta bot (si de repente lo dejó, simplemente escriba cd bot).
7. Cómo subir archivos al servidor a través de github parte 2
Necesitaba poner en el servidor un programa que descargue archivos de git. Puse git en el servidor, conduciéndolo a la consola
apt-get install git
Después de eso, necesitaba configurar la carga del archivo. Para hacer esto, ingresé a la línea de comando
git clone git://github.com/b0tank/bot.git bot
Como resultado, todo el proyecto se cargó en el servidor. El error en esta etapa fue que esencialmente hice una segunda carpeta dentro de la carpeta bot ya existente. La dirección antes del archivo parecía * / bot / bot / index.js
Decidí descuidar este problema.
Y para cargar la biblioteca de telegraf, que solicitamos en la primera línea de código, introduzca un comando en la consola.
npm install telegraf
8. Cómo iniciar un bot
Para hacer esto, mientras está en la carpeta con el archivo (para cambiar de una carpeta a otra a través de la consola, ejecute el comando del formato cd bot
para asegurarse de que está donde necesita conducir un comando que muestra en la consola todos los archivos y carpetas que se encuentran allí ls -a
Para correr, entré en la consola
node index.js
Si no hay error, todo está bien, el bot funciona. Búscalo en el telegrama. Si hay un error, aplique su conocimiento desde 1 punto.
9. Cómo iniciar un bot en segundo plano
Rápidamente, te darás cuenta de que el bot solo funciona cuando tú mismo estás sentado en la consola. Para resolver este problema utilicé el comando
screen
Después de eso, aparecerá una pantalla con algo de texto. Esto significa que todo está bien. Estás en un servidor virtual en un servidor en la nube. Para comprender mejor cómo funciona todo esto, aquí hay un artículo . Simplemente vaya a su carpeta y maneje el comando para iniciar el bot
node index.js
10. ¿Cómo funciona el bot y cómo ampliar su funcionalidad?
¿Qué puede hacer nuestro bot del ejemplo? El puede
bot.start((ctx) => ctx.reply('Welcome!'))
di "¡Bienvenido!" en el momento del inicio (intente cambiar el texto)
bot.help((ctx) => ctx.reply('Send me a sticker'))
en respuesta al comando / ayuda estándar, envíe un mensaje "Enviarme una pegatina"
bot.on('sticker', (ctx) => ctx.reply(''))
en respuesta a la pegatina enviar aprobación
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
responde "Hola" si dicen "hola"
bot.launch ()

Si observa el código en github , se dará cuenta rápidamente de que no me he alejado mucho de esta funcionalidad. Lo que se usa activamente es la función ctx.replyWithPhoto
, que le permite enviar una foto o un gif en respuesta a un texto específico.
Una parte importante del código fue escrita por niños de 11 a 13 años, a quienes les di acceso al bot. Presentaron su caso de usuario. Creo que es fácil determinar qué parte hicieron ellos.
Por ejemplo, el mensaje "jake" viene con un gif con un personaje famoso de la caricatura Adventure Time.

Para desarrollar aún más el bot, para conectar el teclado necesita mirar ejemplos, por ejemplo, desde aquí
11. Cómo actualizar el código y reiniciar el bot
No olvide que necesita actualizar el código no solo en github, sino también en el servidor. Hacer esto es simple: detenga el bot (presione ctrl + c),
- Entrar en la consola, estar en la carpeta de destino, git pull
- inicie el bot nuevamente con el node index.js
Fin
Muchas de las cosas descritas en este archivo serán súper obvias para los programadores avanzados. Sin embargo, cuando yo mismo intenté de un salto para saltar sobre el abismo al mundo de los bots, realmente perdí esa guía. Una guía en la que las cosas que son obvias y simples para cualquier especialista de TI no se pasan por alto.
En el futuro planeo una publicación sobre cómo hacer mi primera aplicación ReactNative con el mismo estilo, ¡suscríbase!