Python开发Telegram bot如何通过InlineKeyboard按钮点击打开URL
问题原因与修复方案
核心错误
你混淆了 Telegram Bot 的两类键盘组件类型:
ReplyKeyboardMarkup是底部弹出的普通回复键盘,仅支持点击后发送对应文本的普通按钮,无法绑定URL跳转、回调等内联按钮逻辑- 带URL跳转的
InlineKeyboardButton必须放在InlineKeyboardMarkup容器中才能生效
正确代码示例
# 创建内联键盘容器,不要使用ReplyKeyboardMarkup button = telebot.types.InlineKeyboardMarkup() # 按行添加带URL的内联按钮 button.row(telebot.types.InlineKeyboardButton(text='Binance', url="替换为你的实际完整URL")) # 发送消息时将构造好的键盘对象传入reply_markup参数 bot.send_message(chat_id=目标会话ID, text="点击下方按钮跳转", reply_markup=button)
额外注意事项
- 确保填入的
url参数是带协议头的完整链接,比如必须写https://www.binance.com,不能省略https:// - 如果需要添加多组按钮,多次调用
row()方法传入对应按钮即可
内容的提问来源于stack exchange,提问作者Ali Moayed
相关产品推荐
相关产品推荐

