Skip to main content

Introducción

  • Este artículo te guía para cambiar el backend HTTP de python-telegram-bot de httpx a aiohttp. httpx y aiohttp son bibliotecas usadas para realizar peticiones HTTP.
  • Antes de empezar, asegúrate de tener Python y la biblioteca python-telegram-bot instalados en tu entorno. Consulta el comando de instalación de python-telegram-bot a continuación.

Cambiando las bibliotecas

Instalación

  • Primero, necesitarás una biblioteca que ofrezca una clase para manejar las peticiones realizadas a Telegram. Instala ptbcontrib con su extra aiohttp_request, que también instala aiohttp:
  • Añade las mismas dependencias a tu requirements.txt, para que Square Cloud las instale durante el deploy:
requirements.txt

Cambiando httpx por aiohttp

  • A continuación, necesitamos importar AiohttpRequest en el archivo donde instanciaremos nuestro cliente del bot.
  • Esta clase manejará todas las peticiones a Telegram en lugar del httpx predeterminado.
  • AiohttpRequest se usará en la instancia del cliente de PTB como en los ejemplos de abajo. Ambos leen el token del bot de la variable de entorno TELEGRAM_BOT_TOKEN, así que nunca va en tu código:

Ejecutar en Square Cloud

Crea un archivo squarecloud.app en la raíz de tu proyecto. Para un bot cuyo archivo principal es main.py:
squarecloud.app
Luego define el token como variable de entorno TELEGRAM_BOT_TOKEN: en la Configuración avanzada del formulario de subida, en la página Variables de entorno de la aplicación (y luego reinicia el bot) o desde la CLI:
Consulta Variables de entorno para los detalles, y el tutorial del bot de Telegram para el recorrido completo del deploy.

¿Por qué hacer este cambio?

  • El backend httpx predeterminado puede lanzar excepciones NetworkError frecuentes, como ReadError, en bots que consultan Telegram durante largos periodos. Cambiar a aiohttp es una forma habitual de que desaparezcan.
  • Si tu bot funciona sin estos errores, no necesitas este cambio.

Próximos pasos

Bot de Telegram

Crea, haz deploy y prueba un bot de Telegram desde cero.

Variables de entorno

Gestiona el token de tu bot y otros secretos.

La app no inicia

Soluciona ModuleNotFoundError y otros fallos de inicio.

¿Te gustó este artículo?

  • Creamos este contenido con mucho cuidado para ofrecer la mejor ayuda posible. Si este artículo te ayudó de alguna manera, ¡apoya nuestro trabajo! Los desarrolladores ya calificaron a Square Cloud con 4.9/5 en 402 reseñas en Google y Trustpilot: ¡deja la tuya también! Nos ayuda a entender qué es lo que más te importa.

Google Reviews

Deja tu reseña en Google Reviews.

Trustpilot

Deja tu reseña en Trustpilot.