Hướng dẫn viết Bot Telegram tự động gửi kết quả xổ số hàng ngày
Hướng dẫn nhanh: Để tạo Bot Telegram gửi kết quả xổ số tự động, lập trình viên có thể kết nối cơ chế Webhook của XoSoAPI.online. Máy chủ Node.js/PHP của bạn sẽ nhận dữ liệu kết quả XSMB, XSMN, Vietlott dạng JSON tự động ngay khi mở thưởng và dùng API Telegram (SendMessage) để đẩy thông báo vào group/channel mà không cần quét lặp (polling).
Telegram hiện là một trong những ứng dụng nhắn tin phổ biến nhất thế giới và là nền tảng tuyệt vời để xây dựng các kênh thông báo tự động. Nếu bạn đang quản lý một cộng đồng hoặc group tin tức và muốn tích hợp tính năng gửi kết quả xổ số hàng ngày, việc tự động hóa thông qua Bot Telegram là giải pháp tối ưu.
Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách viết một ứng dụng Node.js đơn giản nhận kết quả xổ số realtime qua Webhook từ XoSoAPI và tự động định dạng gửi tin nhắn đẹp mắt vào Group/Channel Telegram của bạn.
Bước 1: Tạo Bot Telegram bằng BotFather
Đầu tiên, bạn cần trò chuyện với BotFather trên ứng dụng Telegram để tạo một con Bot mới:
- Tìm kiếm người dùng `@BotFather` trên Telegram.
- Gửi lệnh `/newbot` và đặt tên cho bot của bạn.
- Sau khi tạo thành công, BotFather sẽ gửi cho bạn một chuỗi HTTP API Token. Hãy lưu lại mã Token này.
- Thêm Bot vừa tạo vào Group hoặc Channel của bạn và đặt quyền Quản trị viên (Admin) cho Bot để nó có thể gửi tin nhắn.
Bước 2: Xây dựng máy chủ nhận Webhook (Node.js)
Chúng ta sẽ dựng một server Express cơ bản có một endpoint nhận POST request từ XoSoAPI. Khi máy chủ của chúng ta nhận được dữ liệu kết quả, nó sẽ tự động gửi qua API của Telegram.
Trước khi chạy code, hãy cài đặt các package cần thiết bằng cách chạy lệnh: npm install express axios
const express = require('express');
const axios = require('axios');
const app = express();
app.use(express.json());
// Token bot Telegram từ BotFather và Chat ID của Group/Channel
const TELEGRAM_BOT_TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN';
const TELEGRAM_CHAT_ID = 'YOUR_GROUP_OR_CHANNEL_CHAT_ID';
// Hàm gửi tin nhắn tới Telegram
async function sendTelegramMessage(text) {
const url = `https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage`;
try {
await axios.post(url, {
chat_id: TELEGRAM_CHAT_ID,
text: text,
parse_mode: 'Markdown'
});
console.log('Đã gửi kết quả xổ số thành công!');
} catch (error) {
console.error('Lỗi khi gửi tin nhắn Telegram:', error.message);
}
}
// Endpoint nhận Webhook từ XoSoAPI
app.post('/xoso-webhook', async (req, res) => {
// Nhận dữ liệu kết quả từ XoSoAPI
const { success, data } = req.body;
if (success && data && data.length > 0) {
const draw = data[0]; // data là mảng các đợt mở thưởng
const provinceName = draw.province.name;
const prizes = draw.prizes; // Đối tượng chứa các giải { db: [], g1: [], g2: []... }
// Định dạng tin nhắn gửi đi sinh động
let message = `*KẾT QUẢ XỔ SỐ ${provinceName.toUpperCase()}*\n`;
message += `Ngày quay: ${draw.formatted_date}\n\n`;
message += `*Giải Đặc Biệt:* ${prizes.db ? prizes.db.join(' - ') : 'Đang cập nhật'}\n`;
message += `*Giải Nhất:* ${prizes.g1 ? prizes.g1.join(' - ') : 'Đang cập nhật'}\n`;
message += `*Giải Nhì:* ${prizes.g2 ? prizes.g2.join(' - ') : 'Đang cập nhật'}\n`;
message += `*Giải Ba:* ${prizes.g3 ? prizes.g3.join(' - ') : 'Đang cập nhật'}\n`;
message += `*Giải Tư:* ${prizes.g4 ? prizes.g4.join(' - ') : 'Đang cập nhật'}\n`;
message += `*Giải Năm:* ${prizes.g5 ? prizes.g5.join(' - ') : 'Đang cập nhật'}\n`;
message += `*Giải Sáu:* ${prizes.g6 ? prizes.g6.join(' - ') : 'Đang cập nhật'}\n`;
message += `*Giải Bảy:* ${prizes.g7 ? prizes.g7.join(' - ') : 'Đang cập nhật'}\n`;
if (prizes.g8) {
message += `*Giải Tám:* ${prizes.g8.join(' - ')}\n`;
}
// Gọi hàm gửi tin nhắn
await sendTelegramMessage(message);
}
res.status(200).send('OK');
});
app.listen(3000, () => console.log('Server Webhook đang chạy tại port 3000'));Bước 3: Deploy Server & Cấu hình Webhook trên XoSoAPI
Sau khi code xong, bạn cần triển khai (deploy) ứng dụng Node.js này lên một VPS có địa chỉ IP công khai hoặc một tên miền có hỗ trợ giao thức HTTPS (ví dụ: sử dụng Ngrok để test thử local, hoặc deploy lên các VPS như Vultr, DigitalOcean).
Cuối cùng, truy cập vào trang XoSoAPI Dashboard:
- Chọn mục Webhook Settings.
- Điền URL endpoint của bạn (ví dụ: `https://yourdomain.com/xoso-webhook`).
- Bấm lưu lại. Hệ thống sẽ tự động gửi POST request kèm dữ liệu kết quả xổ số chi tiết ngay khi có đài mở thưởng hoàn tất.
Ưu điểm khi sử dụng Webhook của XoSoAPI
Realtime 100%: Gửi tin nhắn ngay lập tức khi nhà đài vừa công bố kết quả giải Đặc Biệt.
Tiết kiệm năng lượng VPS: Máy chủ của bạn không phải gửi request liên tục (looping request) đến XoSoAPI, tránh lãng phí băng thông và tài nguyên CPU.
An toàn bảo mật: Dễ dàng tích hợp verify HMAC-SHA256 signature để chặn đứng các request spam giả mạo.
Bắt Đầu Tạo Bot Xổ Số Của Riêng Bạn
Đăng ký tài khoản miễn phí để nhận ngay API Key và trải nghiệm cơ chế Webhook Realtime siêu tốc.