Encyclopedia of Distance
work and education
rus

Despliegue del bot de Telegram con imágenes — en 2 minutos y gratis

Esta breve instrucción permitirá a cualquiera de ustedes ejecutar (desplegar) su propio bot de Telegram en el servidor. Rápidamente, sin programas ni habilidades especiales, ¡usando sólo su navegador!

Sin necesidad de configuraciones extravagantes, sin largas instrucciones. ¡En 2 minutos su bot estará funcionando en el servidor! ¡Adelante!

Servidor para el bot de Telegram

Subiremos el bot de Telegram al servidor del proveedor de hosting Beget (uno de los más grandes proveedores de hosting).

Ingrese a esta página, aquí encontrará el servidor que necesita: https://beget.com/en/vps

No se preocupe, no necesita pagar nada ahora — por primera vez el servidor para el bot de Telegram funcionará sin pago.

Elija la tarifa más barata aquí. Créeme, si necesita esta instrucción, no es necesario tomar un servidor caro todavía. Coja el más barato de todos:

Carga (despliegue) del bot de Telegram en el servidor - elegimos la tarifa

Rellene los datos de registro — nombre completo, número de teléfono, correo. Ahora casi todos los países requieren que confirmes tu número de teléfono durante el registro:

Carga (despliegue) del bot de Telegram en el servidor - completamos los datos

Elegimos de nuevo la tarifa más barata, hacemos clic en “Create a virtual server”.

Carga (despliegue) del bot de Telegram en el servidor - Volvemos a elegir una tarifa

Carga (despliegue) del bot de Telegram en el servidor - creamos un servidor

Enhorabuena, su servidor está en marcha (lo más probable es que tenga un nombre de servidor diferente, pero ese es el nombre:) ):

Carga (despliegue) del bot de Telegram en el servidor - el servidor está funcionando

Entramos en el gestor de archivos en el panel de control:

Carga (despliegue) del bot de Telegram en el servidor - vamos al gestor de archivos

Enfrente de usted están las carpetas del servidor. No hay que asustarse, son sólo carpetas del sistema operativo Ubuntu. Es más o menos lo mismo que las carpetas de su ordenador en la unidad «C».

Creamos justo aquí la carpeta con el nombre de nuestro bot. Por ejemplo, que sea «giganika». (cuando va a crear bots profesionalmente, lea en qué directorio es mejor colocarlos — hay diferentes opiniones, pero tenemos una colocación de aprendizaje, vamos a crear una carpeta bot justo en la raíz del sistema operativo — es seguro, sólo que no es muy bonito):

Carga (despliegue) del bot de Telegram en el servidor - creamos una carpeta para el bot

Carga (despliegue) del bot de Telegram en el servidor - creamos un directorio para el bot

Hacemos clic 2 veces en nuestra carpeta, entramos en ella:

Carga (despliegue) del bot de Telegram en el servidor - abrimos la carpeta

Aquí subimos el archivo de nuestro bot:

Carga (despliegue) del bot de Telegram en el servidor - subimos el archivo

Si tiene más de un archivo, hay carpetas — zipéalas, suba el archivo al servidor, luego descomprímalo:

Carga (despliegue) del bot de Telegram en el servidor - si hay muchos archivos - subalos en un archivo comprimido

Vamos a desplegar un simple bot-echo que envíe un mensaje de vuelta. Si aún no lo tiene, puede usar nuestro código (cree un archivo main.py y ponga el código en él), si lo tiene, publique el suyo:

import telebot


bot = telebot.TeleBot(`YOUR_BOT_TOKEN`)

@bot.message_handler(content_types=["text"])

def repeat_all_messages(message):
    bot.send_message(message.chat.id, message.text)


if __name__ == '__main__':
    bot.infinity_polling()

Una vez subido el archivo del bot, tenemos que empezar a ejecutarlo. Nuestro bot funciona con la librería pyTelegramBotAPI (telebot en el código del bot). Para que nuestro bot funciona, tenemos que instalar esta biblioteca en el servidor. Se instala en el que se ejecuta su bot.

Para trabajar con el servidor necesitamos instalar el programa más simple para trabajar vía SSH. Se trata de PuTTy, puede descargarlo desde el sitio web oficial: https://www.putty.org/ 

Descargue e instale el programa, luego ábralo. Verá una ventana como esta:

Carga (despliegue) del bot de Telegram en el servidor - Ventana del programa PuTTy

Ahora copie la dirección ip de su servidor desde su panel de control, desde aquí:

Carga (despliegue) del bot de Telegram en el servidor - copie la ip

Inserte la dirección copiada en PuTTy y haga clic en «Abrir»:

Carga (despliegue) del bot de Telegram en el servidor - inserte la ip y pulse Abrir

En la ventana negra abierta en la línea “login as” introduzca “root” y pulsa “Enter”:

Carga (despliegue) del bot de Telegram en el servidor - introduzca root

En la línea «contraseña» — inserte la contraseña de su servidor — debería haber llegado a su correo (Si la contraseña no llegó — en el panel de control haga clic en “Settings”-“Reset password”-“Reset password and reboot server”  — la nueva contraseña llegará a su correo).

Atención: En PuTTy, la inserción se realiza con un clic del botón DERECHO del ratón o con la combinación de teclas SHIFT+Insertar.

Carga (despliegue) del bot de Telegram en el servidor - especifique su contraseña

Después de haber hecho todo correctamente, debería ver una ventana como esta:

Carga (despliegue) del bot de Telegram en el servidor - ventana de carga del terminal

Nuestro bot utiliza la librería «pyTelegramBotAPI». Si tiene otra, instale la suya. Instalamos nuestra librería «pyTelegramBotAPI» usando pip — lo escribimos en el terminal:

pip install pyTelegramBotAPI

Carga (despliegue) del bot de Telegram en el servidor - instalamos la librería para el bot de Telegram

Una vez instalada la librería, tenemos que ir a la carpeta de nuestro bot en el terminal y ejecutarlo. Escribimos en el terminal «cd /nombre_de_carpeta_con_bot». En nuestro caso es cd /giganika:

Carga (despliegue) del bot de Telegram en el servidor - vamos a la carpeta con el bot

Como podemos ver, el terminal navega hasta la carpeta con el bot:

Carga (despliegue) del bot de Telegram en el servidor - el terminal navega hasta la carpeta con el bot

Ahora aquí iniciamos el bot con el comando nohup y el símbolo & al final de la línea (este comando permite que el bot se ejecute en segundo plano):

nohup python3 main.py &

main.py es el nombre del archivo con el código de nuestro bot. Si su archivo tiene un nombre diferente — reemplace este nombre con el suyo.

¡Ya está! ¡Nuestro bot funciona!

Carga (despliegue) del bot de Telegram en el servidor - ya está, ¡el bot funciona!

Ahora que nuestro bot está funcionando, veamos un par de cosas más. En primer lugar:

Cómo parar su bot de Telegram

Para parar un bot que se esté ejecutando con nohup , en nuestro caso lo más sencillo es utilizar el comando killall:

killall python3

Carga (despliegue) del bot de Telegram en el servidor - parada del bot

Nota, esto detendrá todos los procesos que ejecuten python3. No tiene ningún otro proceso, ya que acabamos de crear el servidor y el bot es la primera cosa que ejecutamos en él. Pero ten esto en cuenta en el futuro.

Si el bot de Telegram se para

A veces sucede que el bot se para. En el 99,99% de los casos, el problema es que Telegram periódicamente no responde a las peticiones del bot (aquí puede leer cuáles son estas peticiones — Cómo funciona el bot de Telegram) y el bot se bloquea con un error. Para mantener su bot funcionando, necesita manejar adecuadamente los errores en el script de su bot. Ese es un tema para otro artículo, es más sobre el proceso de desarrollo, no sobre el despliegue. Quizás lo escribamos algún día. Por ahora, puede buscar información en Google sobre el manejo adecuado de errores en su bot de Telegram. La esencia de un correcto manejo de errores es que cuando la mayoría de los errores ocurren, el script no debería pararse, sino intentar repetir la operación de nuevo, y registrar la información sobre el error en los registros. No es difícil hacerlo, pero es necesario.

Encyclopedia of distance work and education.
Absolutely everything you need to know
to learn and work remotely.