← All articles

5 min read Read in English

ส่ง alert จากเซิร์ฟเวอร์เข้ามือถือใน 5 นาที โดยไม่ต้องเขียน bot

ขั้นตอนจริงตั้งแต่สมัคร สร้างแอป ยิง curl ครั้งแรก ไปจนถึงสคริปต์เช็คดิสก์ใน cron และปุ่มกดกลับบนการ์ด ทำตามได้ใน 5 นาที

บทความนี้สั้นและตรงไปตรงมา เป้าหมายคือให้เซิร์ฟเวอร์ (หรือ cron, หรือสคริปต์อะไรก็ได้ที่ยิง HTTP ได้) ส่งข้อความเข้ามือถือคุณได้ภายใน 5 นาที โดยไม่ต้องเขียน bot ไม่ต้องขอ LINE OA และไม่ต้องให้คนรับสมัครอะไรนอกจากโหลดแอป

ผมใช้ Ting ซึ่งเป็นของผมเอง ถ้าคุณอยากได้ทางเลือกอื่นด้วย อ่านบทความเทียบทางเลือกแทน LINE Notifyก่อนก็ได้ แล้วค่อยกลับมา

นาทีที่ 1: สมัครและสร้างแอป

  1. สมัครใช้งาน ยืนยันอีเมล
  2. ใน console กด สร้างแอป ตั้งชื่ออะไรก็ได้ เช่น "Server Alerts"
  3. เปิดหน้าแอปที่สร้าง จะเห็น 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 พร้อม header X-Ting-Api-Token
  • ส่งเฉพาะเรื่องที่ต้องทำ ใส่ปุ่มให้ไปต่อได้

โค้ดครบทั้ง 8 ภาษา (Node, Python, PHP, C#, Go, Java, Ruby, curl) อยู่ที่หน้า API Reference