メインコンテンツへスキップ
このガイドでは、python-telegram-bot (PTB) の HTTP バックエンドを、デフォルトの httpx から aiohttp に変更します。どちらも HTTP リクエストを行うライブラリです。デフォルトの httpx バックエンドでは、Telegram を長時間ポーリングするボットで ReadError などの NetworkError 例外が頻繁に発生することがあり、aiohttp への切り替えはこれを解消するための一般的な方法です。ボットでこれらのエラーが発生していない場合は、この変更は不要です。

ptbcontrib のインストール

Python と python-telegram-bot ライブラリが必要です。
次に、Telegram へ送信するリクエストを処理するクラスを提供する ptbcontrib をインストールします。aiohttp_request エクストラにより aiohttp もインストールされます。
Square Cloud がデプロイ時にインストールできるように、同じ依存関係を requirements.txt にも追加します。
requirements.txt

httpx から aiohttp に切り替える

ボットクライアントを作成するファイルで AiohttpRequest をインポートします。
このクラスは、デフォルトの httpx の代わりに Telegram へのすべてのリクエストを処理します。以下の例のように PTB クライアントに渡してください。どちらの例もボットトークンを環境変数 TELEGRAM_BOT_TOKEN から読み込むため、トークンがコードに入ることはありません。

Square Cloud で実行する

プロジェクトのルートに squarecloud.app ファイルを作成します。メインファイルが main.py のボットの場合:
squarecloud.app
ZIP には main.py、requirements.txt、squarecloud.app を入れ、トークンは含めません。 次に、トークンを環境変数 TELEGRAM_BOT_TOKEN として設定します。アップロードフォームの 詳細設定、アプリケーションの 環境変数 ページ (設定後にボットを再起動)、または CLI で設定できます。
詳細は環境変数を、デプロイの全手順は Telegram ボットのチュートリアルを参照してください。

次のステップ

Telegram ボット

Telegram ボットを一から作成、デプロイ、テストします。

環境変数

ボットのトークンやその他のシークレットを管理します。

アプリが起動しない

ModuleNotFoundError などの起動エラーを修正します。

この記事は役に立ちましたか?

  • 私たちは可能な限り最良のサポートを提供するため、細心の注意を払ってこのコンテンツを作成しました。 この記事が少しでもお役に立ったなら、ぜひ私たちの活動を応援してください。すでに多くの開発者が Google と Trustpilot で Square Cloud に 402 件のレビューで 4.9/5 の評価をつけています。あなたのレビューもぜひ残してください。あなたにとって何が最も重要かを理解する助けになります。

Google レビュー

Google レビューにあなたのレビューを残してください。

Trustpilot

Trustpilot にあなたのレビューを残してください。