Header Ads Widget

Telegram Bot và gửi tin nhắn bằng Bot API

Hướng dẫn đầy đủ từ việc tạo bot, lấy Bot Token, lấy chat_id của người dùng hoặc nhóm và gửi tin nhắn bằng Telegram Bot API


Bước 1. Tạo Telegram Bot

1. Mở BotFather

Tìm bot chính thức:

@BotFather

2. Tạo bot

Gửi lệnh

/newbot

BotFather sẽ yêu cầu:

Đặt tên bot

Ví dụ

Salekit Notification

Đặt Username

Ví dụ

salekit_notify_bot

Điều kiện:

  • Phải duy nhất
  • Kết thúc bằng bot hoặc Bot
  • Chỉ gồm chữ, số và dấu _

Ví dụ hợp lệ

salekit_notify_bot
SalekitNotifyBot

3. Nhận Bot Token

BotFather sẽ trả về

Done! Congratulations on your new bot.

Use this token to access the HTTP API:

123456789:AAExxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Đây là Bot Token dùng để gọi Telegram API.


Bước 2. Kiểm tra Bot

Mở

https://t.me/<username_bot>

Ví dụ

https://t.me/salekit_notify_bot

Nhấn

Start

Sau khi người dùng nhấn Start, bot mới được phép gửi tin nhắn cho người đó.


Trường hợp 1: Gửi tin nhắn cho một người

Bước 1. Người dùng nhấn Start

Ví dụ

https://t.me/salekit_notify_bot

Start

Bot đã được phép gửi tin.


Bước 2. Lấy chat_id

Gọi API

curl "https://api.telegram.org/bot<TOKEN>/getUpdates"

Ví dụ kết quả

{
"ok": true,
"result": [
{
"message": {
"chat": {
"id": 837611133,
"first_name": "Lien",
"type": "private"
}
}
}
]
}

Trong đó

chat_id = 837611133

Lưu giá trị này vào database.


Bước 3. Gửi tin nhắn

curl -X POST "https://api.telegram.org/bot<TOKEN>/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id":837611133,
"text":"Xin chào từ Telegram Bot!"
}'

Trường hợp 2: Gửi tin nhắn vào Group

Bước 1. Thêm bot vào Group

Vào Group

Add Members

Tìm

@salekit_notify_bot

Add


Bước 2. (Khuyến nghị) Thêm bot làm Admin

Trong Group

Group Info



Administrators



Add Admin



Chọn Bot

Nếu chỉ gửi tin nhắn thì thông thường bot không cần toàn quyền quản trị, nhưng việc thêm làm Admin sẽ giúp tránh một số giới hạn trong nhóm hoặc supergroup.


Bước 3. Gửi một tin nhắn bất kỳ trong Group

Ví dụ

hello

Bước 4. Lấy chat_id của Group

curl "https://api.telegram.org/bot<TOKEN>/getUpdates"

Ví dụ

{
"ok": true,
"result": [
{
"message": {
"chat": {
"id": -1001234567890,
"title": "Salekit Test",
"type": "supergroup"
}
}
}
]
}

Trong đó

chat_id = -1001234567890

Lưu lại giá trị này.


Bước 5. Gửi tin nhắn

curl -X POST "https://api.telegram.org/bot<TOKEN>/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id":-1001234567890,
"text":"Xin chào mọi người!"
}'

Một số API thường dùng

Lấy thông tin bot

curl "https://api.telegram.org/bot<TOKEN>/getMe"

Lấy webhook

curl "https://api.telegram.org/bot<TOKEN>/getWebhookInfo"

Xóa webhook (để dùng getUpdates)

curl "https://api.telegram.org/bot<TOKEN>/deleteWebhook"

Lấy các cập nhật

curl "https://api.telegram.org/bot<TOKEN>/getUpdates"

Lưu ý quan trọng

1. Bot không thể chủ động nhắn cho người chưa Start

Nếu người dùng chưa từng nhấn Start, khi gọi sendMessage sẽ nhận lỗi:

{
"ok": false,
"error_code": 403,
"description": "Forbidden: bot can't initiate conversation with a user"
}

2. Bot phải được thêm vào Group trước

Nếu bot chưa tham gia Group thì không thể gửi tin nhắn.


3. chat_id của Group luôn là số âm

Ví dụ

-1001234567890

4. chat_id của người dùng là số dương

Ví dụ

837611133

Luồng hoạt động đề xuất cho hệ thống (Fchat/Salekit)

Merchant

│ Tạo Bot bằng BotFather

Nhập Bot Token vào hệ thống


Hệ thống gọi setWebhook


Telegram

├── Người dùng nhấn Start
│ │
│ └── Webhook trả về chat_id của người dùng

└── Bot được thêm vào Group hoặc có tin nhắn trong Group

└── Webhook trả về chat_id của Group


Lưu chat_id vào Database


Gọi sendMessage(chat_id, text)


Telegram gửi tin nhắn tới người dùng hoặc Group

Nhận xét