Để viết một bot Telegram bằng PHP, bạn cần thực hiện các bước sau:
1. Tạo Bot và Lấy Token API
- Mở Telegram, tìm bot BotFather và bắt đầu trò chuyện với nó.
- Gửi lệnh
/newbot
và làm theo hướng dẫn để tạo bot.
- Sau khi tạo bot, BotFather sẽ cung cấp một API Token. Ghi lại token này vì bạn sẽ cần nó để kết nối với Telegram API.
2. Thiết lập Môi Trường
- PHP: Cài đặt PHP trên server hoặc local (ví dụ: sử dụng XAMPP, WAMP).
- Composer: Cài đặt Composer nếu muốn sử dụng thư viện hỗ trợ Telegram Bot API, chẳng hạn như
telegram-bot/api
.
3. Cài Đặt Thư Viện (Tùy Chọn)
Bạn có thể sử dụng thư viện như Telegram Bot API để dễ dàng hơn:
composer require telegram-bot/api
4. Tạo File Bot
Tạo file bot.php
hoặc tương tự để viết mã PHP.
Mã Mẫu:
<?php
require 'vendor/autoload.php'; // Nếu dùng Composer
use TelegramBot\Api\BotApi;
// Thay token của bạn ở đây
$token = "YOUR_BOT_TOKEN";
$bot = new BotApi($token);
// Nhận cập nhật từ webhook
$content = file_get_contents("php://input");
$update = json_decode($content, true);
// Kiểm tra xem có tin nhắn không
if (isset($update['message'])) {
$chatId = $update['message']['chat']['id'];
$message = $update['message']['text'];
// Phản hồi đơn giản
if ($message == "/start") {
$bot->sendMessage($chatId, "Chào mừng bạn đến với bot của tôi!");
} else {
$bot->sendMessage($chatId, "Bạn vừa gửi: $message");
}
}
?>
5. Thiết Lập Webhook
Telegram yêu cầu thiết lập Webhook để bot nhận tin nhắn.
1. Host file PHP trên server hoặc local với ngrok (nếu local).
ngrok http 80
Sao chép URL từ ngrok (ví dụ: https://abc123.ngrok.io
).
2. Gửi yêu cầu thiết lập Webhook:
https://api.telegram.org/botYOUR_BOT_TOKEN/setWebhook?url=YOUR_URL/bot.php
Thay:
YOUR_BOT_TOKEN
: Token bot của bạn.
YOUR_URL
: Đường dẫn tới file bot.php
.
Bạn sẽ nhận được phản hồi {"ok":true,"result":true}
nếu thành công.
6. Kiểm Tra Bot
- Mở Telegram, tìm bot của bạn và gửi tin nhắn.
- Bot sẽ phản hồi dựa trên logic trong file
bot.php
.
7. Triển Khai Nâng Cao (Tuỳ Chọn)
- Lưu tin nhắn vào cơ sở dữ liệu (MySQL).
- Tích hợp API bên thứ ba (ví dụ: thời tiết, chứng khoán).
- Xử lý lỗi và log file.
Bạn có thể mở rộng bot với các tính năng phong phú hơn tùy theo nhu cầu. Chúc bạn thành công! 🎉