您准备好构建 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中文网其他相关文章!