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!
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:
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:
Elegimos de nuevo la tarifa más barata, hacemos clic en “Create a virtual server”.
Enhorabuena, su servidor está en marcha (lo más probable es que tenga un nombre de servidor diferente, pero ese es el nombre:) ):
Entramos en el gestor de archivos en el panel de control:
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):
Hacemos clic 2 veces en nuestra carpeta, entramos en ella:
Aquí subimos el archivo de nuestro bot:
Si tiene más de un archivo, hay carpetas — zipéalas, suba el archivo al servidor, luego descomprímalo:
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:
Ahora copie la dirección ip de su servidor desde su panel de control, desde aquí:
Inserte la dirección copiada en PuTTy y haga clic en «Abrir»:
En la ventana negra abierta en la línea “login as” introduzca “root” y pulsa “Enter”:
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.
Después de haber hecho todo correctamente, debería ver una ventana como esta:
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
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:
Como podemos ver, 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!
Ahora que nuestro bot está funcionando, veamos un par de cosas más. En primer lugar:
Para parar un bot que se esté ejecutando con nohup , en nuestro caso lo más sencillo es utilizar el comando killall:
killall python3
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.
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.