一句话结论
内联键盘挂在消息气泡上,经 sendMessage 的 reply_markup.inline_keyboard 下发。四类按钮:url、web_app、callback_data、copy_text。不在 BotFather 里配置气泡按钮。
总览
需要动作留在消息上时用内联键盘;底部输入区快捷键见 Reply Keyboard 指南。参数级权威:core.mp.net/bots。
按钮随消息走,不在 BotFather 配置
只能通过消息
reply_markup(通常是sendMessage)下发。BotFather 的菜单按钮 / 欢迎语设置不会在气泡上造内联行。
事后改键盘用
editMessageReplyMarkup(见回调指南)。
四类语义
字段 | 行为 |
| 打开 HTTP/HTTPS 链接。 |
| 打开本 Bot 已启用的 MiniApp( |
| 向后台发送 |
| 对象形式 |
排版上限
同一行按钮等宽(与文案长短无关)。
行间距约 2pt(客户端排版)。
每行最多 8 个;整键盘最多 100 个。
按钮
text最长 64,超出省略。
style 颜色
可选 style 挂在每个 InlineKeyboardButton 上:success(绿)/ danger(红)/ primary(蓝);不设则客户端默认。其它未开放的 Telegram 按钮字段会返回 400。
右侧图标
图标由按钮类型决定(MiniApp / URL / 复制 / 跳转),开发者不必传图标 URL。
最小 JSON 示例(四类各一)
{
"chat_id": 12345,
"text": "请选择",
"reply_markup": {
"inline_keyboard": [[
{ "text": "文档", "url": "https://core.mp.net/bots" },
{ "text": "应用", "web_app": {
"url": "https://mp.net/MyBot/shop?startapp=home" } },
{ "text": "确认", "callback_data": "ok:1", "style": "success" },
{ "text": "复制", "copy_text": { "text": "ORDER-42" } }
]]
}
}
相关
回调按钮与消息原地更新(answerCallbackQuery)
核心消息方法详解:sendMessage(reply_markup)
MiniApp 标识、直链与 startapp
