一句話結論
內嵌鍵盤掛在訊息氣泡上,經 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
