ส่ง alert จากเซิร์ฟเวอร์เข้ามือถือใน 5 นาที โดยไม่ต้องเขียน bot
ขั้นตอนจริงตั้งแต่สมัคร สร้างแอป ยิง curl ครั้งแรก ไปจนถึงสคริปต์เช็คดิสก์ใน cron และปุ่มกดกลับบนการ์ด ทำตามได้ใน 5 นาที
บทความนี้สั้นและตรงไปตรงมา เป้าหมายคือให้เซิร์ฟเวอร์ (หรือ cron, หรือสคริปต์อะไรก็ได้ที่ยิง HTTP ได้) ส่งข้อความเข้ามือถือคุณได้ภายใน 5 นาที โดยไม่ต้องเขียน bot ไม่ต้องขอ LINE OA และไม่ต้องให้คนรับสมัครอะไรนอกจากโหลดแอป
ผมใช้ Ting ซึ่งเป็นของผมเอง ถ้าคุณอยากได้ทางเลือกอื่นด้วย อ่านบทความเทียบทางเลือกแทน LINE Notifyก่อนก็ได้ แล้วค่อยกลับมา
นาทีที่ 1: สมัครและสร้างแอป
- สมัครใช้งาน ยืนยันอีเมล
- ใน console กด สร้างแอป ตั้งชื่ออะไรก็ได้ เช่น "Server Alerts"
- เปิดหน้าแอปที่สร้าง จะเห็น API token ขึ้นต้นด้วย
tapp_ก๊อปไว้
"แอป" ในความหมายของ Ting คือห้องแจ้งเตือนหนึ่งห้อง ระบบหนึ่งระบบของคุณ = แอปหนึ่งตัว ทดลองฟรี 14 วัน ไม่ต้องใส่บัตร
นาทีที่ 2: ให้มือถือคุณเข้าห้อง
ในหน้าแอปเดียวกัน มี QR และลิงก์เข้าร่วม โหลดแอป Ting Notifications บนมือถือ แล้วสแกน QR นั้น เท่านี้มือถือคุณก็เป็นผู้รับของแอป "Server Alerts" แล้ว
จะให้เพื่อนร่วมทีมรับด้วยก็ส่ง QR หรือลิงก์ไปให้ ไม่ต้องเพิ่มทีละคนใน console ถ้าไม่อยากให้คนแปลกหน้าเข้า เปิด "ต้องใช้ PIN ตอนเข้าร่วม" ได้
นาทีที่ 3: ยิงข้อความแรก
curl -X POST https://api.mawin.one/api/apps/v1/notify \
-H "X-Ting-Api-Token: tapp_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"message":"ทดสอบจากเซิร์ฟเวอร์ 👋"}'
มือถือควรเด้งภายในไม่กี่วินาที ถ้าไม่เด้ง เช็คว่า token ถูก และมือถือสแกน QR ของแอปเดียวกันกับที่ออก token
นาทีที่ 4: ทำให้มันมีประโยชน์จริง
ตัวอย่างที่ผมใช้เองบนเครื่อง Linux: เช็คดิสก์ทุกชั่วโมง ถ้าเกิน 85% ค่อยส่ง
#!/bin/sh
USED=$(df / --output=pcent | tail -1 | tr -dc '0-9')
if [ "$USED" -ge 85 ]; then
curl -s -X POST https://api.mawin.one/api/apps/v1/notify \
-H "X-Ting-Api-Token: $TING_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"message\":\"<b>ดิสก์ $(hostname) เหลือน้อย</b><br>ใช้ไป ${USED}% แล้ว\"}"
fi
ใส่ใน crontab เป็น 0 * * * * จบ
จุดสำคัญคือ ส่งเฉพาะตอนที่ต้องทำอะไร ถ้าส่ง "ดิสก์ปกติ" ทุกชั่วโมง ภายในสองวันคุณจะปิดเสียงแอปแล้วพลาดอันที่สำคัญจริง
นาทีที่ 5: ใส่ปุ่มให้กดกลับได้
ข้อความรับ HTML ชุดหนึ่ง (<b>, <h3>, <img>, <button href> ฯลฯ) ที่ใช้บ่อยสุดคือปุ่มเปิดลิงก์
{
"message": "<h3>ออเดอร์ #1042</h3>ลูกค้า: สมชาย · 3 รายการ · 450 บาท<button href=\"https://your-system/orders/1042\">เปิดออเดอร์</button>"
}
ถ้าต้องการให้ปุ่มยิงกลับมาที่ระบบคุณโดยตรง (เช่น "รับออเดอร์" แล้ว backend บันทึกทันที ไม่ต้องเปิดเว็บ) ดูเรื่อง action ในคู่มือส่งข้อความ — Ting จะ POST มาที่ URL ของคุณพร้อมลายเซ็น HMAC ให้ตรวจได้ว่ามาจาก Ting จริง
ถ้าอยากให้เข้า LINE ด้วย
ทั้งหมดข้างบนคือส่งเข้าแอป Ting ถ้าคุณมี LINE OA อยู่แล้วและอยากให้ข้อความเดียวกันไปโผล่ที่นั่นด้วย ผูก LINE ในหน้าแอป แล้วเพิ่ม "channels": ["TING", "LINE"] ใน body เท่านั้น ข้อความ HTML เดิมจะถูกแปลงเป็น Flex Message ให้เอง ค่าส่งของ LINE ยังเป็นของคุณตามแพ็กเกจ LINE เหมือนเดิม
สรุป
- สมัคร → สร้างแอป → ก๊อป token
- โหลดแอปมือถือ → สแกน QR
curl -X POST .../notifyพร้อม headerX-Ting-Api-Token- ส่งเฉพาะเรื่องที่ต้องทำ ใส่ปุ่มให้ไปต่อได้
โค้ดครบทั้ง 8 ภาษา (Node, Python, PHP, C#, Go, Java, Ruby, curl) อยู่ที่หน้า API Reference