ホームページ  >  記事  >  ウェブフロントエンド  >  Telegram ボットを Cloudflare Workers にデプロイする: ステップバイステップガイド

Telegram ボットを Cloudflare Workers にデプロイする: ステップバイステップガイド

PHPz
PHPzオリジナル
2024-08-19 18:32:031019ブラウズ

Deploying Your Telegram Bots on Cloudflare Workers: A Step-by-Step Guide

サーバー管理の手間をかけずに Telegram ボットを構築する準備はできていますか? Cloudflare Workers を使用すると、すべての面倒な作業を引き受ける強力でスケーラブルなプラットフォームを活用して、ボットを数分でデプロイできます。このガイドでは、TypeScript のシンプルでわかりやすいテンプレートを使用して、開発環境のセットアップから完全に機能する Telegram ボットのデプロイまでのプロセス全体を説明します。早速ボットを立ち上げて実行してみましょう。

? Telegram Bot に Cloudflare Workers を選択する理由は何ですか?

Cloudflare Workers は、開発者が最小限の遅延でユーザーに近いエッジで JavaScript、TypeScript、または Python コードを実行できるサーバーレス プラットフォームです。このプラットフォームを活用することで、超高速なだけでなく拡張性の高い Telegram ボットを展開できます。サーバーの管理、スケーリングの処理、複雑なインフラストラクチャの処理は必要ありません - Cloudflare がすべてを処理します。

?ボットを構築するためのステップバイステップ ガイド

それでは、プロセスを詳しく見ていきましょう。

?新しいワーカー プロジェクトを作成する

  1. 開発環境をセットアップする

構築を開始する前に、ワーカーを管理するための Cloudflare のコマンドライン ツールである Wrangler をインストールする必要があります。

npm install wrangler

ヒント: npm がインストールされていない場合は、nodejs.org から Node.js をダウンロードしてインストールすることで簡単に入手できます。

  1. Telegram ボット テンプレートを使用して新しいワーカーを作成する

Wrangler をセットアップしたら、ワーカー ファイルを配置するディレクトリに移動します。次のコマンドを実行してワーカーを作成します:

npm create cloudflare@latest MY_WORKER_NAME

MY_WORKER_NAME をワーカーの任意の名前に置き換えます。 Wrangler を初めて使用する場合は、Cloudflare アカウントに接続し、ブラウザ ウィンドウ経由で認証するように求められます。指示に従ってください。

テンプレートの入力を求められたら、GitHub リポジトリからのテンプレート を選択し、次のように入力します。

https://github.com/m-sarabi/cloudflare-telegram-bot

次に、尋ねられたら、Typescript を選択します。

必ずこのリポジトリにアクセスして、スター ⭐️を付けてください。

  1. Git を初期化し、デプロイメントをスキップ

セットアップ中に、バージョン管理に Git を使用するかどうか、またワーカーをすぐにデプロイするかどうかを尋ねられます。両方とも いいえ を選択し、すべての設定が完了するまで保留することをお勧めします。

次のメッセージが表示されるはずです: SUCCESS アプリケーションは正常に作成されました!

? @BotFather を使用して Telegram ボットをセットアップする

  1. /newbot コマンドを使用してボットを作成します。
  2. プロンプトに従い、提供された API トークンをメモします。

次に、プロジェクト ディレクトリ内の wrangler.toml ファイルに環境変数を設定します。したがって、次の行をファイルに追加します。

[vars]
SECRET = "<SECRET>"
TOKEN = "<API_TOKEN>"
  • SECRET: を置き換えます。リクエストが設定された Webhook から送信されることを保証するランダム トークンを使用します。 A ~ Z、a ~ z、0 ~ 9、_、- を含む 1 ~ 256 文字を使用できます。
  • API_TOKEN: を置き換えます。 @BotFather から取得した API トークンを使用します。

これらの変数を設定した後、プロジェクト ディレクトリ内で次のコマンドを実行します。

npm run cf-typegen

このコマンドは、新しく設定した変数を反映して、worker-configuration.d.ts ファイルを再生成します。

?ボットのロジックを作成する

さあ、楽しい部分に入りましょう ボットのコーディングです!この例では、これを作成します:

シナリオ: ユーザーが /start コマンドを送信すると、ボットはボタン付きのメッセージを表示します。ボタンを押すと、ボットはボタンを削除し、フォローアップ メッセージを送信します。

/start コマンドを処理する

すべての更新ハンドラー関数は src/Telegram/handlers ディレクトリにあります。

まず、メッセージとインライン ボタンを使用して /start コマンドに応答します。 src/Telegram/handlers/handleMessage.ts を次のように変更します:

import { tg } from '../lib/methods';

export async function handleMessage(message: tgTypes.Message) {
    const messageText = message.text;
    const chatId = message.chat.id;
    if (messageText === '/start') {
        await tg.sendMessage({
            text: 'Welcome to my bot! Press the button to accept my rules!',
            chat_id: chatId,
            reply_markup: {
                inline_keyboard: [
                    [{
                        text: 'I Accept',
                        callback_data: 'accept_rules'
                    }]
                ]
            }
        });
    }
}

このコード スニペットは、tg.sendMessage メソッドを使用してインライン キーボード ボタンを含むメッセージを送信します。

インラインボタン押しの処理

ユーザーがインライン ボタンを押したときに、ボットがこのアクションを認識するようにします。 src/Telegram/handlers/handleCallbackQuery.ts を変更します:

import { tg } from '../lib/methods';

export async function handleCallbackQuery(callbackQuery: tgTypes.CallbackQuery) {
    const data = callbackQuery.data;
    const messageId = callbackQuery.message?.message_id;
    const chatId = callbackQuery.message?.chat.id;
    if (messageId && chatId) {
        if (data === 'accept_rules') {
            await tg.editMessageReplyMarkup({
                chat_id: chatId,
                message_id: messageId,
                reply_markup: undefined
            });
            await tg.sendMessage({
                chat_id: chatId,
                text: 'Thanks for accepting my rules.'
            });
        }
    }
}

このコードは、accept_rules データ クエリをリッスンし、一致するとインライン ボタンを削除し、tg.editMessageReplyMarkup メソッドを使用してフォローアップ メッセージを送信します。

? Webhook の登録

ボット ロジックを配置したら、ワーカーをデプロイし、Webhook 経由で Telegram に接続します。

  1. wranglerdeploy を実行してワーカーをデプロイします。
  2. Cloudflare ダッシュボードに移動し、ワーカーとページ を選択します。
  3. プロジェクト名の横にある 訪問 をクリックします。
  4. URL バーに /registerWebhook (例: https://my-project.my-username.workers.dev/registerWebhook) を追加して Enter キーを押します。 「Webhook が登録されました」と表示されたら、正しく登録されています!

デプロイして登録すると、Telegram でボットと対話できるようになります。 Start をクリック (または /start を送信) して開始すると、インライン ボタン付きのウェルカム メッセージが表示されます。

?結論

Cloudflare Workers のおかげで、Telegram ボットの構築とデプロイがかつてないほど簡単になりました。このガイドに従うことで、サーバーレス テクノロジーの力を利用して、スケーラブルで高速なだけでなく、メンテナンスも簡単なボットを作成できます。

個人用の単純なボットを構築する場合でも、ビジネス向けにより複雑なものを展開する場合でも、このテンプレートは強固な基盤を提供します。コーディングを楽しんでください!

?リソースと参考資料

  • Cloudflare ワーカーのドキュメント
  • テレグラムボット API
  • テンプレートの GitHub リポジトリ

以上がTelegram ボットを Cloudflare Workers にデプロイする: ステップバイステップガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。