Mục lục bài viết
Ví dụ này xây bot nhận lệnh /checklist và trả về một danh sách việc. Bạn có thể nhờ AI giải thích hoặc viết từng đoạn code, nhưng hãy đối chiếu với tài liệu Bot API và không gửi token thật vào cuộc trò chuyện.
Lập trình cùng AI
Cách tạo bot Telegram nhận lệnh, cấu hình token an toàn, chạy local, xử lý lỗi và triển khai một chức năng nhỏ.
Ví dụ này xây bot nhận lệnh /checklist và trả về một danh sách việc. Bạn có thể nhờ AI giải thích hoặc viết từng đoạn code, nhưng hãy đối chiếu với tài liệu Bot API và không gửi token thật vào cuộc trò chuyện.
Đọc tiếp
AI có thể viết code nhanh, nhưng bạn vẫn cần xác định phạm vi, chạy từng phần và đọc lỗi. Bản đầu nên nhỏ: một mục tiêu, vài trang, không dữ liệu nhạy cảm.
Đọc bàiCode chạy trên máy chưa chứng minh website sẵn sàng. Trước khi công khai, kiểm tra đường đi quan trọng, dữ liệu, quyền truy cập, metadata và cách phát hiện lỗi.
Đọc code trước khi chạy. Kiểm tra thư viện đến từ nguồn chính thức, token không được viết cứng và handler chỉ làm đúng chức năng đã yêu cầu. Cài phụ thuộc trong một dự án riêng để dễ xóa và tái tạo.
| Cách | Phù hợp khi | Lưu ý |
|---|---|---|
| Long polling | Học và chạy local | Tiến trình phải chạy liên tục |
| Webhook | Triển khai có địa chỉ HTTPS ổn định | Cần endpoint xác minh và cấu hình webhook |
Hãy giới hạn độ dài đầu vào, thời gian chờ, số lượt gọi và chi phí. Thông báo cho người dùng dữ liệu nào được gửi đến nhà cung cấp AI. Không cho mô hình tự thực hiện hành động có hậu quả cao nếu thiếu bước xác nhận và kiểm tra quyền.
Tạo bot bằng BotFather, lấy token và lưu token trong biến môi trường trên máy hoặc nền tảng deploy. Không dán token vào code, prompt, ảnh chụp hoặc log.
Bài cung cấp trọn mã Node.js cho /start và /checklist, lệnh cài và file tải index.mjs. Bot đọc token từ TELEGRAM_BOT_TOKEN, có xử lý lỗi và dừng sạch bằng SIGINT.
Long polling phù hợp thử local vì tiến trình chủ động lấy cập nhật; webhook phù hợp server có HTTPS ổn định vì Telegram đẩy cập nhật tới endpoint. Không chạy đồng thời cả hai cho cùng bot.
Bot mẫu chỉ nhận /start và /checklist, trả danh sách kiểm tra website. Token đọc từ môi trường; log không ghi token hoặc toàn bộ tin nhắn.

Tạo bot /start và /checklist chạy được từ môi trường mới, giữ token an toàn.
Tạo + giữ token
Long polling
Đúng/sai/mất mạng
Env + health
Node.js 20+, token BotFather lưu trong TELEGRAM_BOT_TOKEN, một tài khoản thử và danh sách trả lời cố định.
Tạo thư mục; cài grammy và dotenv; lưu code; tạo .env không commit; chạy; thử lệnh đúng/sai; thu hồi token nếu lộ.
Bot phản hồi hai lệnh, bỏ qua lệnh khác bằng thông báo trợ giúp, xử lý lỗi polling và dừng sạch bằng SIGINT.
Lưu thành index.mjs; tạo .env riêng và không commit token.
import 'dotenv/config';
import { Bot } from 'grammy';
const token = process.env.TELEGRAM_BOT_TOKEN;
if (!token) throw new Error('Thiếu TELEGRAM_BOT_TOKEN');
const bot = new Bot(token);
bot.command('start', (ctx) => ctx.reply('Gõ /checklist để xem danh sách.'));
bot.command('checklist', (ctx) => ctx.reply('1. Kiểm tra link\n2. Kiểm tra mobile\n3. Gửi thử form\n4. Kiểm tra metadata'));
bot.on('message:text', (ctx) => ctx.reply('Lệnh hỗ trợ: /start, /checklist'));
bot.catch(({ error }) => console.error(error instanceof Error ? error.message : 'Bot error'));
bot.start();mkdir telegram-checklist-bot && cd telegram-checklist-bot
pnpm init
pnpm add grammy dotenv
printf 'TELEGRAM_BOT_TOKEN=thay_token_moi_o_day\n' > .env
printf '.env\nnode_modules\n' > .gitignore
node index.mjsTải bản trống về máy, điền bằng dữ liệu của bạn và lưu cùng ngày kiểm tra.
telegram-bot-index.mjsMở tài liệu gốc để kiểm tra phiên bản và phạm vi áp dụng. Chính sách, nền tảng và số liệu có thể thay đổi sau ngày truy cập.
Học qua thực hành
Tạo bot nhỏ, kết nối lệnh và đưa lên môi trường chạy ổn định.
Xem nội dung khóa họcDự án đầu tiên nên nhỏ, quan sát được và có người dùng rõ. Mục tiêu là hiểu vòng làm sản phẩm, không phải tạo ứng dụng lớn trong một prompt.
Đọc bài