สอนใช้ Discord Webhook ส่งข้อความแจ้งเตือนอัตโนมัติจากโปรแกรมของคุณ

7 นาที 18 views บันทึกเป็น PDF
สอนใช้ Discord Webhook ส่งข้อความแจ้งเตือนอัตโนมัติจากโปรแกรมของคุณ

อยากให้โปรแกรมแจ้งเตือนเข้า Discord ทันทีที่ทำงานเสร็จไหม? มาดูวิธีใช้ Discord Webhook เชื่อมต่อโปรเจกต์ของคุณเข้ากับแชทแบบง่าย ๆ ด้วย cURL, Node.js และ Python

Webhook คืออะไร และทำไมโปรแกรมเมอร์ถึงต้องรู้จัก

ถ้าเปรียบเทียบการสื่อสารในโลกออนไลน์ Webhook (ช่องทางส่งข้อมูลอัตโนมัติจากโปรแกรมหนึ่งไปอีกโปรแกรมหนึ่ง) ก็เหมือนกับบริการแจ้งเตือนพัสดุผ่าน SMS ครับ ปกติเวลาเราสั่งของ เราไม่ต้องโทรไปถามร้านค้าตลอดเวลาว่าของถึงไหนแล้ว แต่ระบบจะส่งข้อความมาบอกเราเองทันทีเมื่อสถานะเปลี่ยนไป

ในมุมของนักพัฒนา Discord Webhook คือวิธีที่ง่ายที่สุดในการให้โปรแกรมของเรา "พูดคุย" กับ Discord โดยไม่ต้องเขียนโค้ดทำ Bot (โปรแกรมอัตโนมัติที่โต้ตอบกับผู้ใช้) ให้ซับซ้อน เราสามารถส่งข้อความแจ้งเตือนเมื่อโค้ดทำงานเสร็จ เมื่อมีคนสมัครสมาชิก หรือแม้แต่ส่งรายงานบั๊กเข้าห้องแชทส่วนตัวได้ทันที

การเข้าใจเรื่องนี้จะช่วยให้เราทำงานได้มืออาชีพขึ้นมากครับ แทนที่จะต้องคอยเปิดหน้าจอโปรแกรมดูตลอดเวลา เราสามารถให้ระบบส่งข้อมูลสำคัญมาหาเราได้เลยผ่านแอปที่ใช้อยู่ทุกวันอย่าง Discord ซึ่งช่วยประหยัดเวลาและทำให้เราโฟกัสกับการเขียนโค้ดส่วนอื่นได้ดีขึ้นครับ

ขั้นตอนการสร้างช่องทางส่งข้อความใน Discord

ก่อนจะเริ่มเขียนโค้ด เราต้องไปสร้าง "ที่อยู่" หรือ URL (ที่อยู่เว็บไซต์สำหรับเข้าถึงข้อมูล) ใน Discord เพื่อให้โปรแกรมของเราส่งข้อความไปหาถูกที่ครับ ขั้นตอนนี้ทำเพียงครั้งเดียวและง่ายมาก

  1. คลิกขวาที่ชื่อช่อง (Channel) ใน Discord ที่เราต้องการให้ข้อความเด้งขึ้นมา
  2. เลือกเมนู Edit Channel (แก้ไขช่อง) แล้วมองหาแถบ Integrations (การเชื่อมต่อ)
  3. กดปุ่ม Webhooks แล้วเลือก New Webhook (สร้างตัวเชื่อมต่อใหม่)
  4. ตั้งชื่อ Webhook และกดปุ่ม Copy Webhook URL เพื่อคัดลอกที่อยู่ไว้ใช้งาน

ข้อควรระวังสำคัญคือ ห้ามแชร์ URL นี้ให้ใครเห็นเด็ดขาดครับ เพราะใครก็ตามที่มีลิงก์นี้สามารถส่งข้อความอะไรก็ได้มาลงในห้องแชทของคุณ หากเผลอทำหลุดไป ให้รีบกดลบ Webhook เดิมแล้วสร้างใหม่ทันทีเพื่อความปลอดภัยครับ

ส่งข้อความพื้นฐานผ่าน Terminal ด้วย cURL

เมื่อเราได้ URL มาแล้ว เรามาลองทดสอบส่งข้อความแรกกันครับ เครื่องมือที่ง่ายที่สุดคือ cURL (คำสั่งที่ใช้รับส่งข้อมูลผ่านเครือข่าย) ซึ่งมีติดเครื่องมาให้เกือบทุกระบบปฏิบัติการอยู่แล้ว เราจะส่งข้อมูลในรูปแบบ JSON (รูปแบบการเก็บข้อมูลที่คอมพิวเตอร์อ่านง่าย)

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"content": "สวัสดีจาก Terminal!"}' \
  https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN

อธิบายคำสั่ง: -X POST คือการบอกว่าเราจะส่งข้อมูลไปให้เซิร์ฟเวอร์, -H คือการกำหนดประเภทเนื้อหาว่าเป็น JSON, ส่วน -d คือข้อมูลข้อความที่เราต้องการส่งไปครับ

ผลลัพธ์ที่ควรเห็น: ทันทีที่กด Enter ข้อความ "สวัสดีจาก Terminal!" จะเด้งขึ้นมาในช่องแชท Discord ของคุณทันที ถ้าไม่ขึ้น ให้ลองเช็กว่าวาง URL ถูกต้องหรือไม่ครับ

เขียนโค้ดด้วย Node.js เพื่อส่งข้อความอัตโนมัติ

เมื่อเราทำผ่าน Terminal ได้แล้ว ต่อไปคือการเขียนโค้ดจริงๆ ในโปรเจกต์ของเราครับ สำหรับ Node.js (สภาพแวดล้อมสำหรับรันภาษา JavaScript นอกเบราว์เซอร์) เราจะใช้ฟังก์ชัน fetch เพื่อส่งข้อมูลไปที่ Discord ครับ

fetch('YOUR_DISCORD_WEBHOOK_URL', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    content: "สวัสดีจาก Node.js ครับ!",
  }),
});

อธิบายโค้ด: บรรทัดแรกคือ URL ของเรา, method: 'POST' คือการส่งข้อมูล, headers คือการบอก Discord ว่าข้อมูลที่ส่งมาเป็น JSON, และ body คือเนื้อหาที่เราต้องการส่งครับ

ผลลัพธ์ที่ควรเห็น: เมื่อรันไฟล์ JavaScript นี้ ข้อความแจ้งเตือนจะไปปรากฏใน Discord ของคุณเหมือนกับตอนใช้ cURL ครับ วิธีนี้เหมาะมากสำหรับการทำระบบแจ้งเตือนในโปรเจกต์เว็บแอปของคุณ

ส่งข้อความสวยงามด้วย Rich Embeds

ถ้าข้อความธรรมดาดูน่าเบื่อเกินไป Discord มีฟีเจอร์ที่เรียกว่า Embeds (กล่องข้อความพิเศษที่ใส่รูปภาพ สี และจัดรูปแบบได้) มาให้ครับ เราสามารถกำหนดค่า title (หัวข้อ), description (คำอธิบาย) และ color (สีของแถบข้าง) ได้ตามใจชอบ

import requests
url = "YOUR_DISCORD_WEBHOOK_URL"
data = {
    "embeds": [{
        "title": "แจ้งเตือนจากระบบ",
        "description": "มีผู้ใช้งานใหม่สมัครสมาชิกเข้ามาครับ",
        "color": 5814783
    }]
}
requests.post(url, json=data)

อธิบายโค้ด: ตัวอย่างนี้ใช้ภาษา Python ครับ เราส่งข้อมูลผ่าน requests.post โดยเปลี่ยนจาก content เป็น embeds ซึ่งเป็นรายการ (List) ของกล่องข้อความที่เราสร้างขึ้นครับ

ผลลัพธ์ที่ควรเห็น: คุณจะได้กล่องข้อความที่มีหัวข้อหนาๆ คำอธิบาย และแถบสีด้านข้าง ทำให้ข้อความแจ้งเตือนดูเป็นระเบียบและน่าอ่านมากกว่าข้อความตัวอักษรธรรมดาครับ

วิธีแก้ปัญหาเมื่อข้อความไม่ขึ้น

ในฐานะโปรแกรมเมอร์ การเจอ Bug (ข้อผิดพลาดของโปรแกรม) เป็นเรื่องปกติครับ ถ้าข้อความไม่ขึ้น ให้สังเกต HTTP Status Code (รหัสสถานะที่ตอบกลับจากเซิร์ฟเวอร์) ที่ได้มาครับ

  • 400 Bad Request: มักเกิดจากรูปแบบ JSON ผิดพลาด ลองเช็กเครื่องหมายปีกกาหรือเครื่องหมายคำพูดให้ครบ
  • 404 Not Found: URL ที่คุณใช้อาจจะผิด หรือคุณอาจจะเผลอลบ Webhook ใน Discord ไปแล้ว
  • 429 Too Many Requests: คุณส่งข้อความรัวเกินไป Discord จำกัดไว้ที่ 5 ครั้งต่อ 2 วินาทีครับ

ถ้าคุณยังหาข้อผิดพลาดไม่เจอ ให้ลองใช้เครื่องมืออย่าง WebhookCatch.com เพื่อตรวจสอบว่าข้อมูลที่ส่งออกไปจากโค้ดของคุณมีหน้าตาเป็นอย่างไรก่อนจะถึงมือ Discord ครับ จะช่วยให้หาจุดที่ผิดได้ไวขึ้นมาก

สรุป: นำไปใช้จริงในโปรเจกต์ของคุณ

การใช้ Discord Webhook ไม่ได้มีไว้แค่แจ้งเตือนทั่วไปครับ แต่มันคือเครื่องมือช่วยทุ่นแรงที่ยอดเยี่ยม คุณสามารถนำไปประยุกต์ใช้ได้หลากหลาย เช่น การทำระบบแจ้งเตือนเมื่อมีคนกรอกฟอร์มในเว็บไซต์ หรือแจ้งเตือนเมื่อ Server (เครื่องคอมพิวเตอร์ที่รันโปรแกรม) ของคุณทำงานผิดพลาด

ลองจินตนาการว่าคุณทำโปรเจกต์ Portfolio อยู่ แทนที่จะต้องคอยเข้ามาเช็กหน้าเว็บว่ามีใครทักมาไหม คุณก็เขียนโค้ดสั้นๆ ให้มันยิง Webhook มาหาคุณทันทีที่ลูกค้ากดส่งข้อความ วิธีนี้จะทำให้คุณไม่พลาดโอกาสสำคัญและดูเป็นมืออาชีพในสายตาผู้ว่าจ้างด้วยครับ

ตอนนี้คุณมีเครื่องมือครบแล้ว ลองสร้าง Webhook ของตัวเองแล้วลองส่งข้อความดูครับ ถ้าติดปัญหาตรงไหน อย่าลืมกลับมาเช็กที่หัวข้อการ Debug อีกครั้ง ขอให้สนุกกับการเขียนโค้ดและทำให้ระบบของคุณฉลาดขึ้นครับ!


ที่มา: Discord Webhook Tutorial: How to Send Automated Messages — DEV Community

แชร์บทความ

Facebook X LINE

บทความที่เกี่ยวข้อง

จัดการเซิร์ฟเวอร์ผ่าน VS Code ให้ง่ายขึ้นด้วย Easy SSH พร้อมฟีเจอร์โหลดไฟล์ผ่านคลิกเดียว

จัดการเซิร์ฟเวอร์ผ่าน VS Code ให้ง่ายขึ้นด้วย Easy SSH พร้อมฟีเจอร์โหลดไฟล์ผ่านคลิกเดียว

เบื่อไหมที่ต้องสลับหน้าจอไปมาเพื่อจัดการเซิร์ฟเวอร์? มาลองใช้ Easy SSH ปลั๊กอิน VS Code ที่ช่วยให้คุณรีโมทผ่าน Terminal ได้สะดวก แถมโหลดไฟล์ได้ง่ายแค่กด Ctrl+click

ที่มา: DEV Community

1 hour ago 11 นาที
2 views
วิธีดึงข้อมูลราคาจาก Google Hotels ด้วย API สำหรับนักพัฒนา

วิธีดึงข้อมูลราคาจาก Google Hotels ด้วย API สำหรับนักพัฒนา

อยากทำแอปท่องเที่ยวแต่ดึงข้อมูลราคาจาก Google Hotels ไม่ได้? มาดูวิธีใช้ Apify Actor ช่วยดึงข้อมูลแบบอัตโนมัติด้วย Python ง่ายๆ ไม่ต้องกลัวเว็บพัง

ที่มา: DEV Community

5 hours ago 8 นาที
3 views
วิธีเช็กความพร้อมโปรเจกต์ก่อนปล่อยงานจริงด้วย ReleaseReady

วิธีเช็กความพร้อมโปรเจกต์ก่อนปล่อยงานจริงด้วย ReleaseReady

เคยไหม? โค้ดรันได้ในเครื่องแต่พอปล่อยจริงกลับพัง! มาดูวิธีตรวจสอบความพร้อมของโปรเจกต์ก่อนอัปขึ้น GitHub ด้วยเครื่องมือ ReleaseReady กัน

ที่มา: DEV Community

9 hours ago 9 นาที
4 views