มาเปลี่ยน Notification ให้อยู่บน Telegram แบบง่ายๆกัน
เกริ่นการมาของบทความนี้กันหน่อยนะครับ เนื่องจาก Line Notify จะปิดให้บริการในวันที่ 31 มีนาคม 2025 ทำให้ต้องใช้คำว่าซวยแล้ว ซวยยังไงก็คือ Alert ทุกอย่างของระบบใช้ตัว Line Notify หมดเลย ไม่ว่าจะเป็น Alert ระดับ System หรือ Alert ระดับ Application รวมไปถึง Features ต่างๆอีกมากมาย
และคงมีอีกหลายคนสงสัยทำไมถึงไม่ใช้ Line OA ต้องบอกว่าไหนๆก็ต้องได้ Code ใหม่แล้วไป Code ที่มันฟรีดีกว่าไหมซึ่ง Telegram คือคำตอบ (ของผมเอง) ซึ่งถ้าเป็น Line Notify มันไม่จำเป็นต้อง Code เลยเป็นอะไรที่หน้าเสียดายจริงๆแทนที่จะเก็บตัง
Telegram เป็นแพลตฟอร์มที่ช่วยให้ธุรกิจหรือบุคคลสามารถสื่อสารและสร้างความสัมพันธ์กับลูกค้าได้อย่างมีประสิทธิภาพ สามารถใช้ได้ทั้งบนมือถือ คอมพิวเตอร์ และเว็บเบราว์เซอร์ โดยมีจุดเด่นสำคัญดังนี้
จุดเด่นของ Telegram
- ความปลอดภัย (Security)
Telegram ใช้การเข้ารหัสแบบ End-to-End สำหรับฟีเจอร์ Secret Chat และใช้โปรโตคอลการเข้ารหัส MTProto ซึ่งถูกออกแบบมาให้มีความปลอดภัยสูง - รองรับกลุ่มขนาดใหญ่
สามารถสร้างกลุ่มแชทที่มีสมาชิกได้สูงสุดถึง 200,000 คน และยังมีฟีเจอร์ Channel สำหรับเผยแพร่เนื้อหาให้สมาชิกได้ไม่จำกัดจำนวน - Bot Integration
Telegram รองรับ Bot API ซึ่งนักพัฒนาสามารถสร้างบอทเพื่อทำงานอัตโนมัติ เช่น แจ้งเตือน ส่งข้อมูล หรือใช้ในระบบตอบกลับอัตโนมัติ - ความเร็วและความเสถียร
Telegram ออกแบบมาให้ทำงานได้รวดเร็วและลื่นไหล แม้ในสภาพแวดล้อมที่มีความเร็วอินเทอร์เน็ตต่ำ - Cloud-based
Telegram เป็นแอปที่ทำงานแบบ Cloud-based ซึ่งหมายความว่าผู้ใช้สามารถเข้าถึงข้อความ ประวัติการแชท และไฟล์ต่าง ๆ ได้จากทุกอุปกรณ์ที่ล็อกอินไว้ - ส่งไฟล์ขนาดใหญ่ได้
สามารถส่งไฟล์ได้ทุกประเภท (ภาพ วิดีโอ เอกสาร ฯลฯ) และรองรับไฟล์ขนาดใหญ่สูงสุดถึง 2 GB ต่อไฟล์
และที่เราจะหยิบมาใช้คือ Bot Integration เป็น Features ที่คล้ายๆ Line พอสมควร
จุดเด่นของบอทโครตโหดใน Telegram
- Users สามารถคุยกับบอทตรงๆได้ อารมณ์คล้ายๆ Line OA เลย
- สามารถ Invite Bot เข้ากลุ่มได้ซึ่งกลุ่มมีขนาดใหญ่ได้ถึง 200,000 คน
- 1 กลุ่มมีบอทได้สูงสุด 50 ตัวแม่เจ้าโครตพ่อโครตแม่โหดอันนี้
- ส่งข้อความฟรีสำหรับกลุ่มสมมุติมี 500 กลุ่มก็สามารถวนลูปส่งหาพร้อมๆกันได้แต่อาจจะติด limit ถ้าส่งหาเฉพาะกลุ่มติด limit ที่ 30 request / sec แต่สามารถทำลายข้อจำกัดตรงนี้ได้ด้วยเงินตกประมาณ 0.07 บาท ต่อข้อความซึ่งจะขยาย limit เป็น 1000 request / sec
- ส่งข้อความฟรีสำหรับบุคคลแต่อาจจะติด limit ถ้าส่งหาเฉพาะคนติด limit ที่ 30 request / sec แต่สามารถทำลายข้อจำกัดตรงนี้ได้ด้วยเงินตกประมาณ 0.07 บาท ต่อข้อความซึ่งจะขยาย limit เป็น 1000 request / sec
มาเริ่มกันเลยดีกว่าครับ
const express = require("express");
const bodyParser = require("body-parser");
const axios = require("axios");
const app = express();
const port = 3000;
const TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN";
const WEBHOOK_URL = "https://your-server.com/webhook";
app.use(bodyParser.json());
// Route สำหรับรับ webhook จาก Telegram
app.post("/webhook", async (req, res) => {
const { message } = req.body;
if (message && message.text) {
console.log(`Received message: ${message.text}`);
const chatId = message.chat.id;
console.log(`Chat ID : ${chatId}`)
await axios
.post(`https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage`, {
chat_id: chatId,
text: `You said: ${message.text}`,
})
}
res.sendStatus(200);
});
// ตั้งค่า webhook ให้กับ Telegram Bot
app.get("/set-webhook", async (req, res) => {
await axios
.post(
`https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/setWebhook`,
{
url: WEBHOOK_URL,
}
)
res.sendStatus(200);
});
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
อันนี้คือ Code สำหรับรับ Event Webhook กับ Set Webhook
ก่อนอื่น Run Ngrok ก่อนเพื่อที่เราจะได้มี https เพื่อ Set Webhook และ รับ Event Webhook ได้ หรือใครใช้ตัวอื่นตามสดวกเลยไม่จำเป็นต้อง Ngrok อย่างเดียว
เมื่อผมได้ https และ Token จาก Telegram กลับไปแก้ Code
const TELEGRAM_BOT_TOKEN = "7956769794:AAGJPskR3OCGquWQ5LtMM2.....";
const WEBHOOK_URL = "https://d952-2405-9800-bca0-1655-29e7-c9dd-4f80-2cf7.ngrok-free.app/webhook";
node index.js
จากนั้น Run Code Nodejs ของเรา
ขั้นตอนติดตั้ง Webhook ที่ Bot ก็เสร็จแล้วคราวนี้เรามาสร้างกลุ่มแล้ว Invite Bot เข้าไปกัน
และเมื่อ บอทเข้ามาแล้วไม่มี Event อะไรเข้า Webhook เลยไม่ต้องตกใจ
curl -X POST https://api.telegram.org/bot7956769794:AAGJPskR3OCGquWQ5Lt...../sendMessage \
-H "Content-Type: application/json" \
-d '{
"chat_id": "-4706103584",
"text": "Hello World"
}'
เพียงเท่านี้เราก็จะได้ Alert ไว้ใช้ดังเดิมแล้วฟรีเหมือนเดิมและยังสามารถใช้ curl เหมือนสมัย Line Notify ได้เหมือนเดิมแถม No Limit อาจจะ Limit แค่เรื่อง 30 request / sec เท่านั้นเอง อยากปลด Limit ก็สามารถซื้อข้อความได้ตกที่ราคาข้อความละ 0.07 บาท จะเปลี่ยนเป็น 1000 request / sec
จบไปแล้วนะครับสำหรับบทความนี้ใครกำลังหาช่องทางสื่อสารกับลูกค้าก็สามารถเอาไปประยุคใช้ได้นะครับไม่ว่าจะทำเป็น ระบบแชท, Task Automation Bot, Bot สำหรับจัดการข้อมูลส่วนตัว และอื่นๆอีกมากมายที่สำคัญฟรี