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

如何用Python在Telegram Bot的键盘下方添加Inline按钮

Telegram Bot 按钮位置调整方案

首先得明确Telegram Bot的两种键盘逻辑,这是解决问题的核心:

  • Inline按钮(InlineKeyboardMarkup):天生绑定到消息,只能显示在消息下方,用于触发回调查询或跳转链接,Telegram原生API不支持将其移到底部输入键盘区域;
  • 底部自定义键盘(ReplyKeyboardMarkup):显示在底部输入键盘位置,用于给用户提供快速输入的预设选项,和Inline按钮的功能逻辑不同。

从你的预期效果来看,你实际需要的是底部自定义键盘,而非严格意义上的Inline按钮。针对这个需求,给出以下调整方案:

替换为底部自定义键盘(ReplyKeyboardMarkup)

如果使用的是python-telegram-bot库,把原有Inline键盘的代码替换为以下内容:

from telegram import ReplyKeyboardMarkup

# 定义按钮布局,每行按钮放在一个列表里
keyboard = [["按钮选项1", "按钮选项2"], ["按钮选项3"]]
# resize_keyboard=True 让键盘自适应屏幕尺寸
reply_markup = ReplyKeyboardMarkup(keyboard, resize_keyboard=True)

# 发送消息时附带这个底部键盘
update.message.reply_text("这里填写你的消息内容", reply_markup=reply_markup)

若确实需要Inline按钮的回调功能

这种情况下无法改变它的显示位置,因为Telegram的API设计就是让Inline按钮依附于消息。如果想要视觉上靠近底部键盘,只能通过发送一条新消息到聊天最底部,并将Inline键盘绑定到这条消息上,模拟“底部显示”的效果。

另外检查你的源代码,确保InlineKeyboardMarkup是正确传入reply_markup参数的,正确写法示例:

from telegram import InlineKeyboardButton, InlineKeyboardMarkup

inline_btn_group = [[InlineKeyboardButton("触发回调的按钮", callback_data='test_btn')]]
reply_markup = InlineKeyboardMarkup(inline_btn_group)

context.bot.send_message(chat_id=你的聊天ID, text="消息文本内容", reply_markup=reply_markup)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:03:40