Telegram เป็นหนึ่งในแพลตฟอร์มที่ได้รับความนิยมสำหรับการสื่อสารทั้งในรูปแบบส่วนตัวและกลุ่ม อีกทั้งยังมี API ที่เปิดให้นักพัฒนาสามารถสร้างบอทเพื่อส่งข้อความแจ้งเตือน หรือทำงานต่างๆ โดยอัตโนมัติได้ง่ายๆ ในบทความนี้ เราจะมาทำความเข้าใจและเรียนรู้การเขียน Telegram Notify Bot โดยใช้ PHP กัน
ทำไมต้องใช้ Telegram Notify Bot
- ความสะดวก: Telegram รองรับการแจ้งเตือนแบบเรียลไทม์ ซึ่งเหมาะสำหรับระบบที่ต้องการส่งข้อมูลสำคัญ เช่น การแจ้งเตือนสถานะการทำงานของเซิร์ฟเวอร์ การแจ้งเตือนธุรกรรม หรือการอัพเดทข้อมูลสำคัญอื่นๆ
- การพัฒนาและใช้งานง่าย: ด้วย Telegram API ที่มีเอกสารชัดเจน การพัฒนาบอทใน Telegram ทำได้อย่างรวดเร็วและไม่ซับซ้อน
- รองรับการปรับแต่ง: คุณสามารถปรับแต่งบอทให้ตอบสนองหรือแสดงข้อความในรูปแบบที่คุณต้องการได้ เช่น ข้อความพร้อมลิงก์, Markdown, หรือการส่งไฟล์
🛠️เตรียมความพร้อม
การสร้าง Telegram Notify Bot ต้องเริ่มต้นด้วยการตั้งค่าบอทและเตรียมข้อมูลเบื้องต้นก่อน
1.สร้าง Telegram Bot
- เปิด Telegram และค้นหา @BotFather หรือ เข้าผ่านลิ้งค์ https://telegram.me/BotFather (ตัวช่วยสร้างบอทใน Telegram)
- ใช้คำสั่ง /newbot เพื่อเริ่มต้นสร้างบอทใหม่
- BotFather จะขอให้คุณทำตามนี้
- ตั้งชื่อบอท (เช่น MyNotifyBot)
- ตั้งชื่อผู้ใช้ (username) ของบอท (ต้องลงท้ายด้วยคำว่า bot เช่น coderblitz_bot)
- หลังจากตั้งค่าเสร็จ BotFather จะส่ง Token ให้คุณ (เป็นรหัสที่ใช้เข้าถึง API)
ตัวอย่าง Token: 0123456789:AAGSue84nMY-XXXXXXXXXXXXXXXXXXXXXXX
2.สร้าง ChatBot และรับ Chat ID
ต่อมาหลังจากที่คุณได้สร้าง Token เรียบร้อยแล้ว ให้คุณคลิกลิ้งค์ตามรูปนี้
📩 ใช้ URL ต่อไปนี้เพื่อดึงข้อมูล Chat ID
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
Chat ID จะอยู่ในรูปแบบ JSON Response เช่น
{
"ok": true,
"result": [
{
"message": {
"chat": {
"id": 123467890, // นี้คือ Chat ID ที่ต้องนำไปใช้งาน
"type": "private"
}
}
}
]
}
การเขียนโค้ด PHP สำหรับส่งข้อความ
เมื่อเรามี Token และ Chat ID แล้ว ต่อไปคือการเขียนโค้ด PHP เพื่อส่งข้อความแจ้งเตือนเข้ามาใน Chat Telegram
โค้ดต่อไปนี้ใช้ cURL ในการเรียก API ของ Telegram
<?php
/**
* ส่งข้อความไปยังแชทที่กำหนดใน Telegram โดยใช้ Telegram Bot API
*
* @param string $botToken รหัสบอทที่ได้รับจาก BotFather
* @param string $chatId ID ของแชทที่ผู้รับ (สามารถเป็น ID ของผู้ใช้หรือกลุ่ม)
* @param string $message ข้อความที่ต้องการส่ง
*
* @return string|false การตอบกลับจาก Telegram API ในรูปแบบ JSON หรือ false หากเกิดข้อผิดพลาด
*/
function sendTelegramMessage(string $botToken, string $chatId, string $message)
{
$url = "https://api.telegram.org/bot$botToken/sendMessage";
$postData = [
'chat_id' => $chatId,
'text' => $message
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
$botToken = 'YOUR_BOT_TOKEN';
$chatId = 'YOUR_CHAT_ID';
$message = 'Hello, this is a test message!';
$response = sendTelegramMessage($botToken, $chatId, $message);
if ($response) {
echo "Message sent successfully!";
} else {
echo "Failed to send message.";
}
Github: how-to-create-telegram-notify-bot-with-php/send-telegram-message.php
💻 การปรับแต่งข้อความในการส่งข้อมูล
Telegram API รองรับการส่งข้อความและไฟล์ในหลายรูปแบบ มาดูวิธีการปรับแต่งเพิ่มเติมได้เลย
ตัวอย่าง: การส่งข้อความ Markdown 📋
Telegram รองรับข้อความที่มีการจัดรูปแบบ เช่น ตัวหนา ตัวเอียง และลิงก์
$postData = [
'chat_id' => $chatId,
'text' => "*Bold Text* _Italic Text_ [Click Here](https://coderblitz.com)",
'parse_mode' => 'Markdown'
];
Github: how-to-create-telegram-notify-bot-with-php/send-telegram-message-with-markdown.php
ตัวอย่าง: ส่งข้อความพร้อม HTML 📋
หากต้องการจัดข้อความด้วย HTML
$postData = [
'chat_id' => $chatId,
'text' => "<b>Bold Text</b> <i>Italic Text</i> <a href='https://coderblitz.com'>Click Here</a>",
'parse_mode' => 'HTML'
];
Github: how-to-create-telegram-notify-bot-with-php/send-telegram-message-with-html.php
ตัวอย่าง: การส่งไฟล์หรือรูปภาพ 📷
Telegram API รองรับการส่งรูปภาพ ไฟล์ หรือเอกสารต่างๆ
<?php
/**
* ส่งรูปภาพไปยัง Telegram chat ผ่าน Telegram Bot API
*
* ฟังก์ชันนี้จะใช้เพื่อส่งรูปภาพไปยัง chat ที่กำหนดโดยใช้ URL รูปภาพที่ต้องการส่ง
*
* @param string $botToken รหัส Token ของบอทที่ได้รับจาก BotFather
* @param string $chatId ID ของแชทที่จะส่งรูปภาพไป (สามารถเป็น ID ของผู้ใช้หรือกลุ่ม)
* @param string $photoUrl URL ของรูปภาพที่ต้องการส่ง (สามารถใช้ URL ภายนอกหรือไฟล์ภายในเซิร์ฟเวอร์)
*
* @return string|false การตอบกลับจาก API Telegram ในรูปแบบ JSON หรือ `false` หากเกิดข้อผิดพลาด
*/
function sendTelegramPhoto(string $botToken, string $chatId, string $photoUrl)
{
$url = "https://api.telegram.org/bot$botToken/sendPhoto";
$postData = [
'chat_id' => $chatId,
'photo' => $photoUrl
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
$botToken = 'YOUR_BOT_TOKEN';
$chatId = 'YOUR_CHAT_ID';
$photoUrl = 'https://coderblitz.com/wp-content/uploads/2024/11/how-to-create-telegram-notify-bot-with-php.png';
$response = sendTelegramPhoto($botToken, $chatId, $photoUrl);
if ($response) {
echo "Photo sent successfully!";
} else {
echo "Failed to send photo.";
}
Github: how-to-create-telegram-notify-bot-with-php/send-telegram-photo.php
💡 Tips & Tricks
– ใช้ cron job สำหรับส่งข้อความอัตโนมัติ
– เพิ่มระบบดักจับข้อผิดพลาด (error handling) เพื่อปรับปรุงความเสถียร
– หากต้องการรับข้อความจากผู้ใช้ ให้ใช้งาน Webhook กับ Telegram API
📢 สรุป
Telegram Notify Bot ช่วยให้ระบบของเพื่อนๆ มีการแจ้งเตือนที่สะดวก รวดเร็ว และสามารถปรับแต่งได้ตามความต้องการของเพื่อนๆ เลย บทความนี้ได้ครอบคลุมตั้งแต่การเริ่มต้นสร้างบอท การส่งข้อความแบบพื้นฐาน ไปจนถึงการปรับแต่งข้อความและการใช้งานจริง หวังว่าบทความนี้จะเป็นประโยชน์สำหรับการพัฒนาของเพื่อนๆ นะครับ