You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telegraf技术问询:捕获指定文本后如何调用对应命令动作?

在Telegraf中让纯文本触发对应命令逻辑的实现方法

方法一:提取共享逻辑到独立函数(推荐)

把命令的核心逻辑抽成单独的函数,这样不管是带斜杠的命令还是纯文本输入,都能复用同一段代码,既避免重复,也方便后续维护。

代码示例:

// 定义共享的帮助逻辑函数
const handleHelp = (ctx) => {
    const helpMessage = `
        *Help Bot* 🦺
        /start - 启动机器人
        /remove - 删除内容
        /help - 获取帮助
    `;
    // 用ctx.reply更简洁,自动发送给当前对话用户
    return ctx.reply(helpMessage, { parse_mode: 'Markdown' });
};

// 绑定/help命令
bot.command('/help', handleHelp);

// 绑定纯文本"help"触发
bot.hears('help', handleHelp);

方法二:直接复用命令处理函数

如果不想单独抽函数,也可以把命令的处理函数赋值给变量,然后在hears中直接调用这个变量:

const helpHandler = ctx => {
    const helpMessage = `
        *Help Bot* 🦺
        /start - 启动机器人
        /remove - 删除内容
        /help - 获取帮助
    `;
    bot.telegram.sendMessage(ctx.from.id, helpMessage, {
        parse_mode: 'Markdown'
    });
};

// 绑定命令和纯文本触发
bot.command('/help', helpHandler);
bot.hears('help', helpHandler);

注意事项

  • 优先用第一种方法,代码结构更清晰,后续修改逻辑只需要改一处即可。
  • ctx.reply是Telegraf提供的快捷方法,比直接调用bot.telegram.sendMessage更简洁,推荐使用。

内容的提问来源于stack exchange,提问作者Antonio Lopez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 02:35:33