您準備好建造 Telegram 機器人而無需管理伺服器了嗎?透過 Cloudflare Workers,您可以在幾分鐘內部署機器人,利用強大的可擴展平台來處理所有繁重的工作。在本指南中,我們將引導您完成整個過程 - 從設定開發環境到部署功能齊全的 Telegram 機器人 - 全部使用 TypeScript 中的簡單、易於遵循的範本。讓我們深入了解並讓您的機器人啟動並運行。
Cloudflare Workers 是一個無伺服器平台,允許開發人員在靠近使用者的邊緣以最小的延遲運行 JavaScript、TypeScript 或 Python 程式碼。透過利用這個平台,您可以部署不僅速度快,而且可高度擴展的 Telegram 機器人。無需管理伺服器、處理擴充或處理複雜的基礎架構 - Cloudflare 會為您處理一切。
現在讓我們深入了解這個過程。
在我們開始建置之前,您需要安裝 wrangler,Cloudflare 用於管理 Workers 的命令列工具:
npm install wrangler
提示:如果您沒有安裝 npm,您可以透過從 nodejs.org 下載並安裝 Node.js 輕鬆取得它。
設定好 Wrangler 後,導覽至您希望工作文件所在的目錄。執行以下命令來建立您的工作人員:
npm create cloudflare@latest MY_WORKER_NAME
將 MY_WORKER_NAME 替換為您喜歡的工作人員名稱。如果這是您第一次使用 Wrangler,它會提示您連接到您的 Cloudflare 帳戶並透過瀏覽器視窗進行身份驗證 - 只需按照說明操作即可。
當提示輸入範本時,選擇來自 GitHub 儲存庫的範本 並輸入:
https://github.com/m-sarabi/cloudflare-telegram-bot
然後在詢問時選擇 Typescript。
請務必訪問此存儲庫並給它一個 Star ⭐️。
在設定過程中,系統會詢問您是否要使用 Git 進行版本控制以及是否要立即部署您的工作執行緒。我建議兩者都選擇否,等到我們配置完所有內容為止。
您應該看到訊息:SUCCESS 應用程式建立成功!
接下來,我們將在專案目錄中的 wrangler.toml 檔案中設定環境變數。因此,將這些行新增至文件:
[vars] SECRET = "<SECRET>" TOKEN = "<API_TOKEN>"
設定這些變數後,在專案目錄中執行以下命令:
npm run cf-typegen
此指令重新產生worker-configuration.d.ts 文件,反映您新設定的變數。
現在,讓我們進入有趣的部分 - 對機器人進行編碼!在此範例中,我們將建立此:
場景:當使用者傳送 /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 將其連接到 Telegram。
部署並註冊後,您可以在 Telegram 上與您的機器人互動。首先點擊 開始(或發送 /start),您應該會看到帶有內聯按鈕的歡迎訊息。
借助 Cloudflare Workers,建置和部署 Telegram 機器人從未如此簡單。透過遵循本指南,您已經利用無伺服器技術的力量來創建一個不僅可擴展、快速且易於維護的機器人。
無論您是建造供個人使用的簡單機器人還是為企業部署更複雜的機器人,此模板都提供了堅實的基礎。快樂編碼!
以上是在 Cloudflare Workers 上部署 Telegram 機器人:逐步指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!