Để sử dụng bot Telegram gửi tin nhắn tự động, bạn cần lấy mã Token của bot, tìm mã Chat ID nơi nhận tin, và sau đó gọi API của Telegram để gửi tin nhắn.
Các bước thực hiện như sau:
1. Tạo Bot Telegram để lấy Token
- Mở ứng dụng Telegram.
- Tìm kiếm tài khoản chính thức
@BotFather. - Nhấn Start rồi gửi lệnh
/newbot. - Nhập tên hiển thị cho bot của bạn.
- Nhập tên người dùng cho bot (phải kết thúc bằng chữ
_bot, ví dụ:ThongBao_bot). - Lưu lại chuỗi API Token do
@BotFathercung cấp (chuỗi có dạng123456:ABC-def...).
2. Lấy mã Chat ID (Nơi nhận tin nhắn)
Bot chỉ có thể gửi tin nhắn cho bạn hoặc nhóm của bạn sau khi đã được kích hoạt.
- Nếu gửi cho cá nhân bạn: Nhấp vào link bot vừa tạo, ấn Start và gửi một tin nhắn bất kỳ cho bot.
- Nếu gửi vào Nhóm: Thêm bot vào Nhóm (Group) hoặc Kênh (Channel) đó với quyền Quản trị viên (Admin). Gửi một tin nhắn bất kỳ vào nhóm.
- Cách lấy Chat ID:
- Mở trình duyệt web.
- Truy cập đường link sau (thay
<TOKEN_CUA_BAN>bằng mã Token ở Bước 1):https://api.telegram.org/bot<TOKEN_CUA_BAN>/getUpdates. - Tìm đoạn
"chat":{"id":xxxxxxxxx}trong nội dung hiển thị. Chuỗi sốxxxxxxxxxchính là Chat ID cần tìm (ID nhóm thường có dấu trừ – ở trước).
3. Gửi tin nhắn bằng API Telegram
Cách 1: Gửi nhanh bằng trình duyệt Web
Bạn chỉ cần copy cấu trúc link dưới đây, dán vào thanh địa chỉ của trình duyệt web rồi ấn Enter:
https://api.telegram.org/bot<TOKEN_CUA_BAN>/sendMessage?chat_id=<CHAT_ID_CUA_BAN>&text=Xin chao
(Hãy thay thế <TOKEN_CUA_BAN>, <CHAT_ID_CUA_BAN> và nội dung chữ sau text= theo nhu cầu của bạn).
Cách 2: Sử dụng code Python
import requests
# Cấu hình thông tin
TOKEN = 'TOKEN_CUA_BAN'
CHAT_ID = 'CHAT_ID_CUA_BAN'
MESSAGE = '<b>Xin chào!</b> Đây là tin nhắn tự động từ <i>Bot</i>.'
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
# Sử dụng HTML để định dạng chữ đậm, nghiêng
payload = {
"chat_id": CHAT_ID,
"text": MESSAGE,
"parse_mode": "HTML"
}
try:
response = requests.post(url, json=payload)
# Tự động báo lỗi nếu HTTP Status Code là 4xx hoặc 5xx
response.raise_for_status()
print("Gửi tin nhắn thành công!")
print(response.json())
except requests.exceptions.HTTPError as http_err:
print(f"Lỗi HTTP: {http_err}")
print(f"Chi tiết từ Telegram: {response.json()}")
except Exception as err:
print(f"Lỗi khác xảy ra: {err}")
Tùy chọn mở rộng:
Bạn có thể thêm các tham số sau vào biến payload :
"parse_mode": "MarkdownV2"hoặc"HTML"để định dạng văn bản (đậm, nghiêng, chèn link)."disable_web_page_preview": Trueđể ẩn hình ảnh xem trước của các đường link có trong tin nhắn."disable_notification": Trueđể gửi tin nhắn trong im lặng (không gây tiếng động cho người nhận).
Cách 3: Sử dụng trong WordPress
<?php
// Cấu hình thông tin
$token = 'TOKEN_CUA_BAN';
$chat_id = 'CHAT_ID_CUA_BAN';
$message = 'Xin chào! Đây là tin nhắn tự động từ Bot qua WordPress.';
$url = "https://api.telegram.org/bot$token/sendMessage";
// Cấu hình dữ liệu và tham số gửi đi
$args = array(
'headers' => array(
'Content-Type' => 'application/json; charset=utf-8',
),
'body' => wp_json_encode( array(
'chat_id' => $chat_id,
'text' => $message,
) ),
'data_format' => 'body',
'timeout' => 15,
);
// Thực hiện gửi yêu cầu
$response = wp_remote_post( $url, $args );
// Kiểm tra và xử lý kết quả
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Lỗi kết nối: " . esc_html( $error_message );
} else {
$body = wp_remote_retrieve_body( $response );
$data = json_decode( $body, true );
if ( isset( $data['ok'] ) && $data['ok'] === true ) {
echo "Gửi tin nhắn thành công!";
} else {
echo "Lỗi từ Telegram: " . esc_html( $data['description'] );
}
}
Cách 4: Sử dụng lệnh cURL (Chạy trên Terminal / Bash Script)
curl -X POST "https://api.telegram.org/bot{TOKEN_CUA_BAN}/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "CHAT_ID_CUA_BAN",
"text": "Xin chào! Đây là tin nhắn tự động từ Bot qua cURL."
}'
