Telegram không chỉ là một ứng dụng nhắn tin mà còn là nền tảng mạnh mẽ để xây dựng bot tự động. Trong bài viết này, bạn sẽ học cách tạo một Telegram bot, gửi tin nhắn văn bản và hình ảnh bằng lập trình – rất hữu ích cho các hệ thống cảnh báo, chatbot, hoặc ứng dụng tự động hóa.
Vì sao nên chọn Telgram?
- Dễ sử dụng: chỉ cần gửi HTTP request đến server Telegram là nhận được tin nhắn. Ai cũng có thể tạo/sử dụng và hoàn toàn miễn phí.
- Hữu dụng: làm công cụ nhắc nhở, lên lịch công việc realtime hoặc gửi tin nhắn cảnh báo
- Dễ dàng gửi tin nhắn & hình ảnh
Mục lục
1. Cách tạo bot Telegram
Bước 1: Tìm BotFather
Mở Telegram và tìm kiếm BotFather (bot chính thức của Telegram để quản lý bot).
Nhấn Start để bắt đầu trò chuyện với BotFather.
Bước 2: Tạo bot mới
Gõ lệnh /newbot
BotFather sẽ yêu cầu bạn đặt tên cho bot (tên hiển thị).
Sau đó, bạn cần đặt username cho bot (phải kết thúc bằng bot, ví dụ: thigiacmaytinh_bot).
Bước 3: Nhận Token truy cập
Sau khi hoàn tất, BotFather sẽ gửi cho bạn một Token – chuỗi ký tự dùng để xác thực người gửi.
Ví dụ token:
123456789:AAHh9aD2n3cHs93jsHD8wKsjHd3JDjajdkd
Lưu ý: Token này rất quan trọng, không chia sẻ công khai.
2. Gửi tin nhắn (text)
Để gửi tin nhắn, bạn chỉ cần gọi API của Telegram qua HTTPS.
Cách 1: Gửi bằng URL
Bạn có thể dán trực tiếp đường dẫn sau vào trình duyệt:
https://api.telegram.org/bot
Thay
Cách 2: Gửi bằng Python
1 2 3 4 5 6 7 8 9 10 11 |
import requests token = 'YOUR_TOKEN' chat_id = 'CHAT_ID' message = 'Xin chào từ bot Telegram!' url = f'https://api.telegram.org/bot{token}/sendMessage' data = {'chat_id': chat_id, 'text': message} response = requests.post(url, data=data) print(response.json()) |
Cách 3: Gửi bằng C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
private static async Task SendMessageAsync(string message) { var client = new HttpClient(); string url = $"https://api.telegram.org/bot{Program.botToken}/sendMessage"; var parameters = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("chat_id", Program.chatID), new KeyValuePair<string, string>("text", message) }); HttpResponseMessage response = await client.PostAsync(url, parameters); string result = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { throw new Exception($"Failed to send message. Telegram API response: {result}"); } Console.WriteLine("Message sent successfully."); } <pre> Cách gọi hàm <pre> string message = "Hello!"; await SendMessageAsync(message); |
3. Gửi hình ảnh
Cách 1: gửi bằng Python
1 2 3 4 5 6 7 8 9 10 11 12 |
import requests token = 'YOUR_TOKEN' chat_id = 'CHAT_ID' photo_path = 'path/to/image.jpg' url = f'https://api.telegram.org/bot{token}/sendPhoto' files = {'photo': open(photo_path, 'rb')} data = {'chat_id': chat_id} response = requests.post(url, files=files, data=data) print(response.json()) |
Cách 2: gửi bằng C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
private static async Task SendImageAsync(string imagePath) { if (!File.Exists(imagePath)) { throw new Exception($"Image file not found: {imagePath}"); } using (var client = new HttpClient()) { string url = $"https://api.telegram.org/bot{Program.botToken}/sendPhoto"; var form = new MultipartFormDataContent(); form.Add(new StringContent(Program.chatID), "chat_id"); form.Add(new StreamContent(File.OpenRead(imagePath)), "photo", Path.GetFileName(imagePath)); HttpResponseMessage response = await client.PostAsync(url, form); string result = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { throw new Exception($"Failed to send image. Telegram API response: {result}"); } Console.WriteLine("Image sent successfully."); } } |
Cách gọi hàm
1 2 |
string imagePath = @"D:\test.jpg"; await SendImageAsync(imagePath ); |
Tổng kết
Việc gửi tin nhắn qua Telegram là gửi HTTP request đến server Telegram, bạn có thể lập trình tương tự bằng bất kỳ ngôn ngữ nào.
Với một bot Telegram và vài dòng mã, bạn có thể dễ dàng gửi tin nhắn hoặc ảnh tới bất kỳ người dùng nào (hoặc nhóm) có tương tác với bot. Ứng dụng rất nhiều trong việc gửi thông báo, báo lỗi hệ thống, hoặc tự động hóa công việc.