Contents
- 1 Hướng dẫn tạo menu tùy chọn cho bot Telegram bằng Inline Keyboard siêu dễ
- 1.1 Giới thiệu về Inline Keyboard trong Telegram Bot
- 1.2 Cách hoạt động của Inline Keyboard
- 1.3 Tạo Inline Keyboard bằng Python
- 1.4 Tạo Inline Keyboard bằng Node.js
- 1.5 Nâng cao: Tạo menu động & phân trang
- 1.6 So sánh giữa Python và Node.js khi xây menu bot
- 1.7 Những lưu ý khi sử dụng Inline Keyboard
- 1.8 Ứng dụng thực tế: xây chatbot bán hàng, khảo sát, dịch vụ khách hàng
- 1.9 Tích hợp với hệ thống tại TRANBAO.DIGITAL
- 1.10 Tổng kết
- 1.11 Câu hỏi thường gặp (FAQ)
Trong thời đại của tự động hóa và trải nghiệm người dùng cá nhân hóa, việc sở hữu một bot Telegram không chỉ là lợi thế, mà là điều kiện cần nếu bạn muốn đi nhanh và sâu trong các chiến dịch marketing hiện đại. Nhưng bot không chỉ biết trả lời. Bot cần biết giao tiếp thông minh. Và đó là lúc Inline Keyboard xuất hiện như một “bàn phím kỳ diệu” cho phép bạn tạo ra menu tùy chọn đẹp, dễ nhấn và dễ dẫn dắt người dùng.
Bài viết này sẽ giúp bạn – dù là developer, marketer hay người đam mê công nghệ – tự tay tạo một menu tương tác cho bot Telegram bằng cách sử dụng Inline Keyboard. Đừng lo, bạn không cần phải là coder lão luyện đâu. Chỉ cần theo dõi từng bước, bạn sẽ hiểu – và làm được.
Giới thiệu về Inline Keyboard trong Telegram Bot
Sự khác biệt giữa Inline Keyboard và Reply Keyboard
Telegram hỗ trợ hai loại bàn phím cho bot:
- Reply Keyboard: xuất hiện cố định dưới khung nhập tin nhắn. Khi người dùng nhấn nút, nó sẽ gửi văn bản như một tin nhắn người dùng.
- Inline Keyboard: gắn trực tiếp vào từng tin nhắn của bot. Mỗi nút có thể kích hoạt callback, mở liên kết, hoặc khởi chạy query khác.
Inline Keyboard giúp tạo trải nghiệm mượt mà, tương tác không gián đoạn. Người dùng không cần nhập gì cả – chỉ việc chạm và bot xử lý mọi thứ ngầm bên dưới.
Ứng dụng phổ biến của Inline Keyboard
- Bot khảo sát với lựa chọn trắc nghiệm
- Menu chọn sản phẩm hoặc dịch vụ
- Phân trang nội dung
- Hệ thống chăm sóc khách hàng với nhiều lựa chọn phản hồi
“Inline Keyboard giúp tăng tỷ lệ tương tác lên tới 3 lần so với tin nhắn văn bản thông thường” – Theo báo cáo từ Telegram Bot API.
Cách hoạt động của Inline Keyboard
Mỗi nút trong Inline Keyboard có cấu trúc cơ bản:
text
: văn bản hiển thịcallback_data
: dữ liệu được gửi khi người dùng nhấnurl
: (tùy chọn) mở liên kết ngoài
Các nút được tổ chức theo mảng hai chiều – từng hàng có thể chứa nhiều nút, tạo thành lưới điều hướng trực quan.
Ví dụ: bạn muốn tạo menu với 2 lựa chọn mỗi hàng:
[
[ {text: "Sản phẩm A", callback_data: "a"}, {text: "Sản phẩm B", callback_data: "b"} ],
[ {text: "Trợ giúp", callback_data: "help"} ]
]
Tạo Inline Keyboard bằng Python
Cài đặt thư viện python-telegram-bot
Trước tiên, bạn cần cài đặt thư viện:
pip install python-telegram-bot
Dưới đây là ví dụ tạo 2 nút tùy chọn:
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
keyboard = [
[InlineKeyboardButton("Option 1", callback_data='opt1')],
[InlineKeyboardButton("Option 2", callback_data='opt2')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
bot.send_message(chat_id=chat_id, text="Chọn một tuỳ chọn:", reply_markup=reply_markup)
Xử lý callback khi người dùng nhấn nút
Khi người dùng nhấn, bot sẽ nhận callback query. Bạn cần xử lý nó:
def button_callback(update, context):
query = update.callback_query
data = query.data # 'opt1' hoặc 'opt2'
query.answer()
query.edit_message_text(text=f"Bạn đã chọn: {data}")
dispatcher.add_handler(CallbackQueryHandler(button_callback))
Việc gọi query.answer()
là bắt buộc để tránh cảnh báo từ Telegram.
Giả sử bạn muốn hỏi người dùng có thích bot hay không:
keyboard = [
[InlineKeyboardButton(" Có", callback_data='yes')],
[InlineKeyboardButton(" Không", callback_data='no')]
]
bot.send_message(chat_id=chat_id, text="Bạn có thích bot này không?", reply_markup=InlineKeyboardMarkup(keyboard))
Kết quả sẽ là một khảo sát mini gọn gàng, không cần nhập liệu.
Tạo Inline Keyboard bằng Node.js
Cài đặt thư viện node-telegram-bot-api
Node.js cũng là một nền tảng phổ biến để phát triển Telegram bot nhờ tốc độ và khả năng mở rộng. Trước tiên, bạn cần cài đặt thư viện:
npm install node-telegram-bot-api
Ví dụ tạo hai nút chọn cơ bản:
const TelegramBot = require('node-telegram-bot-api');
const bot = new TelegramBot('YOUR_BOT_TOKEN', { polling: true });
const opts = {
reply_markup: {
inline_keyboard: [
[
{ text: "Lựa chọn 1", callback_data: "opt1" },
{ text: "Lựa chọn 2", callback_data: "opt2" }
]
]
}
};
bot.onText(//start/, (msg) => {
bot.sendMessage(msg.chat.id, "Chọn một tùy chọn:", opts);
});
Bắt sự kiện khi người dùng nhấn nút
bot.on('callback_query', function (callbackQuery) {
const msg = callbackQuery.message;
const data = callbackQuery.data;
bot.answerCallbackQuery(callbackQuery.id);
bot.editMessageText(`Bạn đã chọn: ${data}`, {
chat_id: msg.chat.id,
message_id: msg.message_id
});
});
Bạn có thể thay đổi nội dung menu dựa trên nút được nhấn. Ví dụ: người dùng nhấn “Trang tiếp theo”, bạn sẽ gửi menu mới tương ứng.
function generateKeyboard(page) {
return {
inline_keyboard: [
[{ text: `Trang ${page}`, callback_data: `page_${page}` }],
[
{ text: "◀️ Trước", callback_data: `page_${page - 1}` },
{ text: "▶️ Tiếp", callback_data: `page_${page + 1}` }
]
]
};
}
Khi người dùng chọn, bạn cập nhật menu bằng:
bot.editMessageText(`Bạn đang ở trang ${newPage}`, {
chat_id: msg.chat.id,
message_id: msg.message_id,
reply_markup: generateKeyboard(newPage)
});
- Danh sách sản phẩm nhiều trang
- Khảo sát nhiều bước
- Quản lý nội dung chatbot theo flow
Tiêu chí | Python | Node.js |
---|---|---|
Độ phổ biến | Cao trong cộng đồng học thuật | Phổ biến với các sản phẩm thương mại |
Hiệu suất | Ổn định | Nhanh, nhẹ |
Thư viện bot | python-telegram-bot | node-telegram-bot-api |
Dễ học | Rất dễ, phù hợp người mới | Dễ nếu quen JavaScript |
Những lưu ý khi sử dụng Inline Keyboard
- Luôn gọi
query.answer()
trong callback để tránh lỗi thời gian chờ của Telegram - Không lạm dụng quá nhiều nút, dễ gây rối cho người dùng
- Sử dụng ngôn ngữ rõ ràng, ngắn gọn trên nút bấm
- Tránh lặp callback_data, nên có hệ thống mã callback logic
Ứng dụng thực tế: xây chatbot bán hàng, khảo sát, dịch vụ khách hàng
Khảo sát khách hàng
Bot gửi câu hỏi và các lựa chọn để người dùng nhấn. Dữ liệu được lưu trữ để phân tích.
Tư vấn sản phẩm
Hiển thị các lựa chọn sản phẩm theo danh mục, mỗi nút dẫn đến mô tả hoặc nút “Mua ngay”.
Chăm sóc khách hàng
Các menu như “Tôi cần hỗ trợ”, “Liên hệ”, “Thời gian bảo hành” giúp khách hàng tự điều hướng mà không cần nhân viên trực tiếp.
Tích hợp với hệ thống tại TRANBAO.DIGITAL
TRANBAO.DIGITAL cung cấp giải pháp tự động hóa cho bot Telegram như:
- Gửi tin nhắn tự động hàng loạt từ Google Sheet
- Bot chăm sóc khách hàng phản hồi theo từ khóa
- Tích hợp với API Zalo, Facebook, TikTok để chạy omnichannel
Tham khảo thêm các bài viết chuyên sâu:
Hoặc xem toàn bộ giải pháp tại dịch vụ quảng cáo Quy Nhơn để bắt đầu hành trình tự động hóa mạnh mẽ.
Tổng kết
Inline Keyboard là một trong những công cụ mạnh mẽ giúp bot Telegram trở nên sống động, trực quan và chuyên nghiệp hơn. Dù bạn là người mới hay đã có kinh nghiệm, việc áp dụng các kỹ thuật trong bài viết sẽ giúp bạn:
- Nắm vững cấu trúc Inline Keyboard
- Tạo menu bằng Python hoặc Node.js
- Thiết kế trải nghiệm người dùng mượt mà
- Tối ưu hóa quy trình bán hàng, tư vấn, hỗ trợ
Bạn đã sẵn sàng đưa bot Telegram của mình lên một tầm cao mới chưa?
Liên hệ ngay để nhận tư vấn miễn phí
Câu hỏi thường gặp (FAQ)
1. Inline Keyboard có thể dùng chung với Reply Keyboard không?
Không. Chúng là hai loại bàn phím khác nhau. Inline Keybo