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

Telegraf框架调用bot.setMyCommands提示不是函数如何解决?

报错原因
  • 版本API不兼容是最高发的原因:Telegraf v3.x 和 v4.x 的API结构差异极大。v3.x 版本中setMyCommands方法直接挂载在bot实例上,而v4.x 版本开始,所有底层Bot API方法都迁移到了bot.telegram对象下暴露。你所对照的官方文档和你本地安装的Telegraf版本不匹配,就会出现该方法不存在的报错。
  • 极小概率为实例初始化异常:如果存在实例导出/引入错误、调用方法早于实例初始化完成也会出现该报错,但你其余bot方法均可正常运行,可基本排除该可能。
可行解决方案
  • 适配v4.x版本写法(推荐):将调用路径改为bot.telegram.setMyCommands即可,同时注意v4.x中命令不需要加/前缀,Telegram会自动补全处理,修改后的代码如下:
bot.telegram.setMyCommands([
    { command: 'start', description: 'start a dialogue with Jarvis' },
    { command: 'repeater', description: 'make Jarvis repeat every your message' }
])
  • 沿用v3.x版本:若要保持原有写法不变,可将本地Telegraf降级到v3最终稳定版,执行以下安装命令即可:
    npm install telegraf@3.38.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:27:04