如何在Telegram bot中创建三条横线菜单?该类菜单叫什么?
菜单正式名称
你提到的三条横线触发的Telegram Bot菜单,官方标准名称为 Bot命令菜单(Bot Command Menu),属于Telegram客户端原生支持的能力,无需自定义开发UI,菜单样式由Telegram统一渲染。
实现方法
方法1:通过@BotFather静态配置(无需代码,适合固定菜单)
这是最常用的配置方式,操作步骤如下:
- 在Telegram中搜索并打开@BotFather的对话窗口
- 发送
/setcommands指令 - 按提示选择你需要配置菜单的目标Bot
- 按照
命令名 - 命令说明的格式逐行发送你的菜单内容,示例如下:
start - 启动机器人,查看欢迎信息 search - 搜索岗位信息 subscribe - 订阅岗位推送 my - 查看我的收藏和投递记录 help - 查看使用指南
- 收到BotFather的配置成功提示后,重新进入与你的Bot的对话页面,即可看到左上角的三条横线菜单按钮,点击对应菜单项会自动向Bot发送对应指令。
方法2:调用API动态配置(适合需要自定义菜单的场景)
如果你需要针对不同用户、不同场景展示不同菜单,可以调用Telegram Bot API的 setMyCommands 接口实现动态配置。
核心参数说明
commands:命令数组,每个元素包含两个字段:command:命令名称,仅支持小写英文、数字、下划线,不能包含特殊字符或中文description:命令说明,最大长度32字符
scope(可选):指定命令生效范围,支持全局生效、指定群组/私聊生效、指定单个用户生效language_code(可选):针对不同语言的用户展示不同语言版本的菜单
代码示例(Python python-telegram-bot 库)
from telegram import BotCommand, BotCommandScopeChat from telegram.ext import Updater # 初始化Bot updater = Updater(token="你的Bot Token") # 配置全局通用菜单 global_commands = [ BotCommand("start", "启动机器人"), BotCommand("search", "搜索岗位"), BotCommand("help", "使用帮助") ] updater.bot.set_my_commands(global_commands) # 给指定用户配置专属菜单(示例用户ID:12345678) user_commands = [ BotCommand("start", "启动机器人"), BotCommand("search", "搜索岗位"), BotCommand("subscribe", "订阅推送"), BotCommand("my", "我的主页"), BotCommand("help", "使用帮助") ] updater.bot.set_my_commands( commands=user_commands, scope=BotCommandScopeChat(chat_id=12345678) ) updater.start_polling()
注意事项
- 配置完成后如果菜单没有立刻刷新,可以杀掉Telegram后台重启应用,或者退出Bot对话页面重新进入即可生效
- 动态配置的专属菜单优先级高于全局配置的通用菜单
- 命令说明超出32字符的部分会被Telegram客户端自动截断
内容的提问来源于stack exchange,提问作者Gabriel Diego
相关产品推荐
相关产品推荐

