Vai al contenuto principale

Introduzione

  • Questo articolo ti guida nel cambiare httpx di python-telegram-bot in aiohttp. httpx e aiohttp sono librerie utilizzate per effettuare richieste http.
  • Prima di iniziare, assicurati di avere Python e la libreria python-telegram-bot installati nel tuo ambiente. Controlla il comando di installazione di python-telegram-bot qui sotto.
pip install python-telegram-bot

Cambiare le librerie

Installazione

  • Per prima cosa, dovrai installare una libreria che offre una classe per gestire le richieste effettuate a Telegram. Installiamo ptbcontrib, usa il comando qui sotto:
pip install git+https://github.com/python-telegram-bot/ptbcontrib.git@main

Cambiare httpx in aiohttp

  • Successivamente, dobbiamo importare AiohttpRequest nel file in cui istanzieremo il client del nostro bot.
from ptbcontrib.aiohttp_request import AiohttpRequest
  • Questa classe gestirà tutte le richieste a telegram al posto del httpx predefinito.
  • AiohttpRequest verrà utilizzato nell’istanza del client PTB come nell’esempio qui sotto:
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()

Perché fare questo cambiamento?

  • Cambiare la libreria httpx in aiohttp porta con sé alcuni vantaggi.
  1. Prestazioni: aiohttp è più veloce di httpx.
  2. Riduzione degli errori: httpx solleva troppi errori di rete come ReadError e altri NetworkError a causa delle sue configurazioni e prestazioni.

Ti è piaciuto questo articolo?

  • Abbiamo creato questo contenuto con grande cura per offrirti il miglior aiuto possibile. Se questo articolo ti è stato utile in qualche modo, sostieni il nostro lavoro! Lascia la tua recensione! ci aiuta a capire cosa conta di più per te.

Google Reviews

Lascia la tua recensione su Google Reviews.

Trustpilot

Lascia la tua recensione su Trustpilot.