Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Telegram cho phép bạn tạo bot hoàn toàn miễn phí, và với Python bạn có thể có một con bot trả lời tin nhắn chỉ sau vài chục phút. Bài này hướng dẫn từ việc xin token đến viết các lệnh cơ bản và phản hồi tin nhắn thường.
Trong Telegram, tìm tài khoản có tên BotFather (có dấu tích xác minh) rồi thực hiện:
/newbot.bot, ví dụ hoccode_demo_bot.Bạn cần Python 3.9 trở lên. Nên dùng môi trường ảo để tránh lẫn thư viện giữa các dự án:
python -m venv venv
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate
pip install python-telegram-botThư viện python-telegram-bot phiên bản 20 trở lên dùng cú pháp bất đồng bộ (async/await). Đoạn code dưới đây viết theo cú pháp đó.
Tạo file bot.py. Token được đọc từ biến môi trường để không nằm cứng trong code.
import os
from telegram import Update
from telegram.ext import (
ApplicationBuilder, CommandHandler, MessageHandler,
ContextTypes, filters,
)
TOKEN = os.environ["BOT_TOKEN"]
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("Xin chào! Gõ /help để xem các lệnh.")
async def help_cmd(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(
"Các lệnh:\n/start - bắt đầu\n/help - trợ giúp\n/echo <nội dung> - lặp lại"
)
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
text = " ".join(context.args)
if not text:
text = "Bạn chưa nhập nội dung."
await update.message.reply_text(text)
async def reply_text(update: Update, context: ContextTypes.DEFAULT_TYPE):
msg = update.message.text.lower()
if "chào" in msg:
await update.message.reply_text("Chào bạn, chúc một ngày tốt lành!")
else:
await update.message.reply_text("Mình chưa hiểu, thử gõ /help nhé.")
def main():
app = ApplicationBuilder().token(TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("help", help_cmd))
app.add_handler(CommandHandler("echo", echo))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, reply_text))
app.run_polling()
if __name__ == "__main__":
main()Đặt biến môi trường rồi chạy:
# Windows PowerShell
$env:BOT_TOKEN = "dán_token_của_bạn"
python bot.py
# macOS/Linux
export BOT_TOKEN="dán_token_của_bạn"
python bot.pyMở cuộc trò chuyện với bot trong Telegram, bấm Start và thử các lệnh. Chừng nào cửa sổ terminal còn chạy, bot còn hoạt động. Dùng Ctrl + C để dừng.
CommandHandler bắt lệnh bắt đầu bằng dấu /, MessageHandler bắt tin nhắn theo bộ lọc.async def và gọi hành động mạng bằng await.Muốn bot chạy 24/7 bạn cần một máy chủ hoặc VPS. Cách phổ biến là chạy bằng systemd hoặc bọc trong Docker, và khai báo token qua biến môi trường của dịch vụ. Với bot nhỏ, nhiều người dùng các nền tảng chạy ứng dụng miễn phí hoặc giá rẻ, nhưng hãy đọc kỹ giới hạn của từng nơi.
Bạn vừa có một bot Telegram với lệnh và phản hồi tin nhắn thường. Điểm quan trọng nhất là bảo vệ token và tách nó khỏi mã nguồn. Từ nền này, bạn có thể biến bot thành trợ lý cá nhân, công cụ thông báo cho nhóm hoặc bot hỗ trợ khách hàng nhỏ.
Nếu muốn học Python bài bản trước khi làm các dự án lớn hơn, bạn có thể xem các khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment