Skip to main content

Einführung

  • Dieser Artikel führt dich durch die Umstellung des HTTP-Backends von python-telegram-bot von httpx auf aiohttp. httpx und aiohttp sind Bibliotheken für HTTP-Anfragen.
  • Bevor wir beginnen, stelle sicher, dass Python und die Bibliothek python-telegram-bot in deiner Umgebung installiert sind. Den Installationsbefehl für python-telegram-bot findest du unten.

Bibliotheken ändern

Installation

  • Zunächst brauchst du eine Bibliothek, die eine Klasse zur Verarbeitung der Anfragen an Telegram bereitstellt. Installiere ptbcontrib mit dem Extra aiohttp_request, das auch aiohttp installiert:
  • Füge dieselben Abhängigkeiten deiner requirements.txt hinzu, damit Square Cloud sie beim Deploy installiert:
requirements.txt

httpx durch aiohttp ersetzen

  • Als Nächstes importieren wir AiohttpRequest in der Datei, in der wir unseren Bot-Client instanziieren.
  • Diese Klasse verarbeitet alle Anfragen an Telegram anstelle des standardmäßigen httpx.
  • AiohttpRequest wird in der PTB-Client-Instanz wie in den folgenden Beispielen verwendet. Beide lesen den Bot-Token aus der Umgebungsvariable TELEGRAM_BOT_TOKEN, sodass er nie in deinem Code landet:

Auf Square Cloud ausführen

Erstelle im Stammverzeichnis deines Projekts eine Datei squarecloud.app. Für einen Bot mit der Hauptdatei main.py:
squarecloud.app
Lege dann den Token als Umgebungsvariable TELEGRAM_BOT_TOKEN fest: im Bereich Erweiterte Konfiguration des Upload-Formulars, auf der Seite Umgebungsvariablen der Anwendung (starte den Bot danach neu) oder über die CLI:
Details findest du unter Umgebungsvariablen, die vollständige Deploy-Anleitung im Telegram-Bot-Tutorial.

Warum diese Änderung?

  • Das standardmäßige httpx-Backend kann bei Bots, die Telegram über lange Zeit per Polling abfragen, häufig NetworkError-Ausnahmen wie ReadError auslösen. Der Wechsel zu aiohttp ist ein gängiger Weg, sie zu beseitigen.
  • Wenn dein Bot ohne diese Fehler läuft, brauchst du diese Änderung nicht.

Nächste Schritte

Telegram-Bot

Erstelle, deploye und teste einen Telegram-Bot von Grund auf.

Umgebungsvariablen

Verwalte den Token deines Bots und andere Secrets.

App startet nicht

Behebe ModuleNotFoundError und andere Fehler beim Start.

Hat dir dieser Artikel gefallen?

  • Wir haben diesen Inhalt mit großer Sorgfalt erstellt, um dir die bestmögliche Hilfe zu bieten. Wenn dir dieser Artikel in irgendeiner Weise geholfen hat, unterstütze unsere Arbeit! Entwickler haben Square Cloud bereits mit 4,9/5 bei 402 Bewertungen auf Google und Trustpilot bewertet: hinterlasse auch deine! Sie hilft uns zu verstehen, was dir am wichtigsten ist.

Google Reviews

Hinterlasse deine Bewertung bei Google Reviews.

Trustpilot

Hinterlasse deine Bewertung bei Trustpilot.