Passer au contenu principal

Introduction

  • Cet article vous guide pour changer httpx de python-telegram-bot vers aiohttp. httpx et aiohttp sont des bibliothèques utilisées pour effectuer des requêtes http.
  • Avant de commencer, assurez-vous d’avoir Python et la bibliothèque python-telegram-bot installés dans votre environnement. Consultez la commande d’installation de python-telegram-bot ci-dessous.
pip install python-telegram-bot

Changement de bibliothèques

Installation

  • Tout d’abord, vous devrez installer une bibliothèque qui offre une classe pour gérer les requêtes effectuées vers Telegram. Installons ptbcontrib, utilisez la commande ci-dessous :
pip install git+https://github.com/python-telegram-bot/ptbcontrib.git@main

Changement de httpx vers aiohttp

  • Ensuite, nous devons importer AiohttpRequest dans le fichier où nous instancierons notre client bot.
from ptbcontrib.aiohttp_request import AiohttpRequest
  • Cette classe gérera toutes les requêtes vers Telegram à la place du httpx par défaut.
  • AiohttpRequest sera utilisée dans l’instance du client PTB comme dans l’exemple ci-dessous :
import asyncio
import telegram
from ptbcontrib.aiohttp_request import AiohttpRequest


async def main():
    bot = telegram.Bot("TOKEN", request=AiohttpRequest(), get_updates_request=AiohttpRequest())
    async with bot:
        print(await bot.get_me())


if __name__ == '__main__':
    asyncio.run(main())
import logging
from telegram import Update
from telegram.ext import ApplicationBuilder, ContextTypes, CommandHandler
from ptbcontrib.aiohttp_request import AiohttpRequest

logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    level=logging.INFO
)

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")

if __name__ == '__main__':
    application = ApplicationBuilder().request(AiohttpRequest(connection_pool_size=256)).get_updates_request(AiohttpRequest()).token('TOKEN').build()
    
    start_handler = CommandHandler('start', start)
    application.add_handler(start_handler)
    
    application.run_polling()

Pourquoi effectuer ce changement ?

  • Changer la bibliothèque httpx pour aiohttp apporte certains avantages.
  1. Performance : aiohttp est plus rapide que httpx.
  2. Réduction des erreurs : httpx lèvera trop d’erreurs réseau comme ReadError et d’autres NetworkErrors en raison de ses configurations et de ses performances.

Avez-vous aimé cet article ?

  • Nous avons créé ce contenu avec le plus grand soin afin d’offrir la meilleure aide possible. Si cet article vous a aidé d’une quelconque manière, soutenez notre travail ! Laissez votre avis ! Cela nous aide à comprendre ce qui compte le plus pour vous.

Google Reviews

Laissez votre avis sur Google Reviews.

Trustpilot

Laissez votre avis sur Trustpilot.