การเชื่อมต่อ Webhook - คู่มือฉบับสมบูรณ์เรื่องทริกเกอร์ HTTP

เชื่อมต่อ webhook ของ Echobell: เมธอด HTTP ตัวแปร เทมเพลต เฮดเดอร์ และตัวอย่างใช้งานจริงสำหรับการแจ้งเตือนบนมือถือทันที


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

Webhook คืออะไร

webhook คือวิธีที่แอปพลิเคชันหนึ่งส่งข้อมูลแบบเรียลไทม์ไปยังแอปพลิเคชันอื่นผ่านการเรียกกลับด้วย HTTP ลองนึกภาพว่ามันเหมือนเบอร์โทรศัพท์ที่คุณให้ใครสักคนไว้ เมื่อเขาโทรมาที่เบอร์นั้น โทรศัพท์ของคุณก็จะดัง ในโลกดิจิทัล เมื่อมีบางอย่างเกิดขึ้นในระบบหนึ่ง (เช่น CPU ใช้งานสูง บิลด์ล้มเหลว หรือมีคำสั่งซื้อใหม่) ระบบนั้นจะส่งคำขอ HTTP ไปยัง URL (ซึ่งก็คือ webhook) ที่คุณให้ไว้ เพื่อทริกเกอร์การทำงานในระบบของคุณ

ตัวอย่างเช่น เมื่อการใช้งาน CPU ของเซิร์ฟเวอร์คุณสูงเกินไป ระบบมอนิเตอร์ของคุณสามารถเรียก webhook URL ของ Echobell ซึ่งจะทริกเกอร์การแจ้งเตือนมาถึงคุณ กระบวนการนี้เกิดขึ้นอัตโนมัติและแบบเรียลไทม์ โดยที่คุณไม่ต้องคอยเฝ้าดูการใช้งาน CPU ด้วยตัวเอง

webhook เป็นรากฐานของสถาปัตยกรรมแบบขับเคลื่อนด้วยอีเวนต์ และได้รับการรองรับจากบริการคลาวด์ เครื่องมือมอนิเตอร์ และแพลตฟอร์ม SaaS สมัยใหม่แทบทุกเจ้า มันเบา รวดเร็ว และไม่ต้องการโครงสร้างพื้นฐานพิเศษใด ๆ จากฝั่งคุณ เพียงแค่มีไคลเอนต์ HTTP ก็พอ

ข้อดีของ Webhook

  • เรียลไทม์: อีเวนต์ทริกเกอร์การแจ้งเตือนได้ทันที โดยทั่วไปภายใน 1-2 วินาที
  • ใช้ได้ทั่วไป: รองรับโดยบริการและภาษาโปรแกรมสมัยใหม่แทบทุกชนิด
  • ยืดหยุ่น: ส่งข้อมูลแบบกำหนดเองเพื่อสร้างการแจ้งเตือนที่มีบริบทและรายละเอียดครบถ้วน
  • เชื่อถือได้: ทำงานบน HTTP พร้อมรหัสสถานะมาตรฐานและการจัดการข้อผิดพลาด
  • ขยายขนาดได้: ไม่ต้องคอยเรียกถามซ้ำ ๆ ระบบจะส่งการแจ้งเตือนเฉพาะเมื่อเกิดอีเวนต์เท่านั้น

ภาพรวม

แต่ละช่องของ Echobell ตั้งค่าให้มี webhook URL เฉพาะตัวได้ เมื่อ URL นี้ถูกเรียก ช่องนั้นจะส่งการแจ้งเตือนไปยังผู้ติดตามทุกคนตามเทมเพลตการแจ้งเตือนที่ตั้งไว้และตัวแปรที่ส่งเข้ามา

รูปแบบของ Webhook URL

https://hook.echobell.one/t/{channel-token}

คุณดู webhook URL ของช่องคุณได้ในหน้ารายละเอียดของช่องในแอป Echobell

การส่งคำขอ Webhook

webhook ของ Echobell รองรับทั้งเมธอด GET และ POST:

คำขอแบบ GET

คุณส่งตัวแปรผ่านพารามิเตอร์ใน query ได้:

GET https://hook.echobell.one/t/<channel-token>?server_name=Production&cpu_usage=95

คำขอแบบ POST

สำหรับคำขอแบบ POST ให้ส่งตัวแปรใน JSON body:

POST https://hook.echobell.one/t/<channel-token>
Content-Type: application/json

{
  "server_name": "Production",
  "cpu_usage": 95
}

POST Only

แต่ละช่องมีสวิตช์ POST Only อยู่ใน Advanced Settings ของแอป Echobell ซึ่งปิดอยู่โดยค่าเริ่มต้น

เมื่อเปิดใช้งาน จะมีเพียง POST เท่านั้นที่ทริกเกอร์ช่องนั้นได้ ส่วนคำขอ GET ไปยัง webhook URL จะถูกปฏิเสธด้วย 405 Method Not Allowed และจะไม่มีการส่งการแจ้งเตือน:

{
  "success": false,
  "notificationTriggered": false,
  "message": "This trigger only accepts POST requests; GET triggering is disabled in its settings."
}

คำขอ HEAD ไม่ได้รับผลกระทบ โดยจะตอบกลับ 200 และไม่ทริกเกอร์การแจ้งเตือนเสมอ ไม่ว่า POST Only จะเปิดหรือปิดอยู่

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

ตัวแปรพิเศษ

Echobell รองรับตัวแปรพิเศษหนึ่งตัวที่เพิ่มความสามารถให้การแจ้งเตือนของคุณ:

  • externalLink: เมื่อใส่ค่านี้มาในคำขอ จะสร้างลิงก์ที่คลิกได้ในหน้าบันทึกการแจ้งเตือน มีประโยชน์สำหรับลิงก์ไปยังข้อมูลโดยละเอียดหรือแหล่งข้อมูลที่เกี่ยวข้อง

ตัวอย่างการใช้ลิงก์ภายนอก:

POST https://hook.echobell.one/t/<channel-token>
Content-Type: application/json

{
  "server_name": "Production",
  "cpu_usage": 95,
  "externalLink": "https://dashboard.example.com/alerts/123"
}

ตัวแปรในเทมเพลต

ตัวแปรที่ส่งมาผ่าน webhook นำไปใช้ในเทมเพลตการแจ้งเตือนของคุณได้ด้วยไวยากรณ์ {{variableName}}:

Title: Server {{server_name}} Alert
Body: CPU usage has reached {{cpu_usage}}%

เมื่อถูกทริกเกอร์ เทมเพลตเหล่านี้จะถูกเติมด้วยค่าที่คุณส่งมาในคำขอ webhook

ตัวแปรเวลาของระบบ (UTC)

นอกเหนือจากข้อมูลที่คุณส่งมา Echobell ยังมีตัวแปรเวลาของระบบแบบอ่านอย่างเดียวที่ใช้ได้เสมอทั้งในเทมเพลตและเงื่อนไข ค่าทั้งหมดคำนวณตามเวลา UTC ฟิลด์ระดับบนสุดได้แก่ date, time, year, month, dayOfWeek, hour, minute และ second ส่วนตัวแปรอื่น ๆ เช่น sys.dayOfWeekName, sys.epochMs และ sys.epochSeconds ใช้ได้เฉพาะภายใต้เนมสเปซ sys. เท่านั้น ดูรายการทั้งหมดและตัวอย่างการใช้งานได้ที่ เงื่อนไข

กรณีใช้งานที่พบบ่อย

webhook เป็นวิธีทริกเกอร์ที่ได้รับความนิยมที่สุดใน Echobell และมีประโยชน์เป็นพิเศษสำหรับ:

DevOps และการมอนิเตอร์

  • การมอนิเตอร์เซิร์ฟเวอร์: การแจ้งเตือนเรื่อง CPU หน่วยความจำ และการใช้พื้นที่ดิสก์ จากระบบมอนิเตอร์อย่าง Prometheus หรือ Grafana
  • การมอนิเตอร์ uptime: การแจ้งเตือนความพร้อมใช้งานของเว็บไซต์และบริการ จาก Uptime Kuma หรือ UptimeRobot
  • การมอนิเตอร์คอนเทนเนอร์: Docker, pod ของ Kubernetes ล้มเหลว และข้อจำกัดด้านทรัพยากร
  • การรวบรวมล็อก: ข้อผิดพลาดร้ายแรงและ exception จากระบบจัดการล็อก

การพัฒนาและ CI/CD

  • การแจ้งเตือนเรื่องบิลด์: บิลด์ล้มเหลว ผลการทดสอบ และสถานะการดีพลอย จาก GitHub Actions หรือ GitLab CI
  • คุณภาพโค้ด: ข้อผิดพลาดจาก lint ช่องโหว่ด้านความปลอดภัย และการเปลี่ยนแปลงของ code coverage
  • อีเวนต์ใน repository: pull request, commit, release และกิจกรรมของผู้ร่วมพัฒนา
  • การติดตามการดีพลอย: การดีพลอยสำเร็จ การย้อนกลับเวอร์ชัน และการเปลี่ยนแปลงของสภาพแวดล้อม

แอปพลิเคชันทางธุรกิจ

  • อีคอมเมิร์ซ: คำสั่งซื้อใหม่ การยืนยันการชำระเงิน คำเตือนเรื่องสต็อก และการอัปเดตการจัดส่ง
  • CRM: ผู้สนใจรายใหม่ การปิดดีล ตั๋วซัพพอร์ต และการติดต่อจากลูกค้า
  • การประมวลผลการชำระเงิน: ธุรกรรมสำเร็จ คำขอคืนเงิน และการแจ้งเตือนการฉ้อโกง
  • การส่งฟอร์ม: ฟอร์มติดต่อ คำตอบแบบสำรวจ และการลงทะเบียนที่เสร็จสมบูรณ์

IoT และบ้านอัจฉริยะ

  • อีเวนต์ในบ้านอัจฉริยะ: เซ็นเซอร์ประตู การตรวจจับการเคลื่อนไหว และการเปลี่ยนแปลงอุณหภูมิ ผ่าน Home Assistant
  • อุปกรณ์ IoT: ค่าที่อ่านได้จากเซ็นเซอร์ การเปลี่ยนสถานะอุปกรณ์ และปัญหาการเชื่อมต่อ
  • ระบบรักษาความปลอดภัย: การทริกเกอร์สัญญาณเตือน การตรวจจับการเคลื่อนไหวจากกล้อง และอีเวนต์การควบคุมการเข้าถึง
  • การมอนิเตอร์สภาพแวดล้อม: อุณหภูมิ ความชื้น และคุณภาพอากาศที่เกินเกณฑ์

การเทรดและการเงิน

  • การแจ้งเตือนตลาด: ความเคลื่อนไหวของราคาและอินดิเคเตอร์ทางเทคนิคจาก TradingView
  • การมอนิเตอร์พอร์ตการลงทุน: การเปลี่ยนแปลงของสถานะการถือครอง การเรียกหลักประกันเพิ่ม และยอดคงเหลือในบัญชี
  • เหตุการณ์ทางเศรษฐกิจ: การเผยแพร่ข่าว รายงานผลประกอบการ และการเปลี่ยนแปลงของบรรยากาศตลาด

ดู คู่มือการเชื่อมต่อ ของเราสำหรับคำแนะนำการตั้งค่าเฉพาะแพลตฟอร์มยอดนิยม

แนวปฏิบัติที่ดี

การจัดการข้อผิดพลาด

อย่าพึ่งพาเพียงสถานะ HTTP อย่างเดียว ให้ตรวจสอบ JSON response body และดูฟิลด์ success เสมอ:

  • 200 OK: ระบบได้รับคำขอแล้ว ให้ตรวจสอบ JSON body โดย success: true หมายถึงช่องถูกทริกเกอร์แล้ว ส่วน success: false หมายถึงคำขอถูกรับไว้แต่ไม่มีการส่งการแจ้งเตือน (เช่น โทเคนของช่องไม่รู้จัก ซึ่งก็ยังตอบกลับด้วย HTTP 200)
  • 400 Bad Request: โทเคนของช่องมีความยาวไม่ถูกต้อง ให้แก้ไข webhook URL
  • 405 Method Not Allowed: ช่องนั้นเปิด POST Only ไว้ แต่คำขอไม่ใช่ POST ให้เปลี่ยนฝั่งผู้เรียกเป็น POST หรือปิดการตั้งค่านี้
  • 500 Server Error: ปัญหาชั่วคราว ให้ลองใหม่โดยเพิ่มระยะเวลารอแบบทวีคูณ

Echobell ไม่จำกัดอัตราการเรียก webhook จึงไม่มีการตอบกลับด้วย 429 และเนื่องจากโทเคนที่ไม่รู้จัก (แต่มีความยาวถูกต้อง) ก็ยังตอบกลับ 200 พร้อม success: false จึงควรแยกเงื่อนไขจากฟิลด์ success ใน JSON เสมอ แทนที่จะดูจากสถานะ HTTP

การจำกัดอัตราการเรียก

เว้นระยะเวลาระหว่างการเรียก webhook อย่างเหมาะสม เพื่อไม่ให้ระบบแจ้งเตือนของคุณรับภาระหนักเกินไป:

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

ความปลอดภัยของข้อมูล

แชร์ webhook URL เฉพาะกับระบบและบริการที่ไว้ใจได้เท่านั้น:

  • ถือว่า webhook URL เป็นความลับ เพราะมันเปิดทางให้ส่งการแจ้งเตือนได้โดยตรง
  • อย่าคอมมิต webhook URL ลงใน repository สาธารณะ หรือแชร์ในเอกสารสาธารณะ
  • เปลี่ยน webhook URL เป็นระยะ หรือเมื่อมีสมาชิกในทีมลาออก
  • ใช้ฟีเจอร์ "Reset Token" ของช่องเพื่อยกเลิก URL เดิมหากรั่วไหล
  • พิจารณาใช้ตัวแปรสภาพแวดล้อมหรือระบบจัดการความลับในการเก็บ URL

การตั้งชื่อตัวแปร

ใช้ชื่อตัวแปรที่ชัดเจนและสอดคล้องกันในการเรียก webhook ของคุณ:

  • ใช้ชื่อที่สื่อความหมาย: server_name แทนที่จะเป็น s หรือ srv
  • ใช้แบบแผนการตั้งชื่อที่สอดคล้องกันในทุกช่อง
  • บันทึกไว้ว่าเทมเพลตของคุณคาดหวังตัวแปรใดบ้าง
  • ตรวจสอบว่าตัวแปรที่จำเป็นทั้งหมดมีครบก่อนส่ง

การทดสอบ

ทดสอบการเชื่อมต่อ webhook ของคุณอย่างละเอียดก่อนนำไปใช้งานจริง:

  1. ใช้เครื่องมืออย่าง curl, Postman หรือไคลเอนต์ HTTP ของภาษาที่คุณใช้ในการทดสอบเบื้องต้น
  2. เริ่มจากเทมเพลตแบบง่าย ๆ แล้วค่อย ๆ เพิ่มความซับซ้อน
  3. ทดสอบทั้งเมธอด GET และ POST เพื่อดูว่าแบบไหนเหมาะกับคุณที่สุด
  4. ตรวจสอบว่าอักขระพิเศษและ Unicode ถูกจัดการอย่างถูกต้อง
  5. ทดสอบสถานการณ์ที่ผิดพลาด (ตัวแปรขาดหาย JSON ผิดรูปแบบ) เพื่อทำความเข้าใจพฤติกรรมของระบบ
  6. ใช้ ช่องสำหรับทดสอบ แยกจากช่องที่ใช้งานจริงระหว่างการพัฒนา

การออกแบบเทมเพลต

ออกแบบเทมเพลตให้ยังมีประโยชน์แม้ตัวแปรที่ไม่บังคับจะขาดหายไป:

  • เตรียมค่าเริ่มต้นหรือค่าสำรองสำหรับข้อมูลที่ไม่บังคับ
  • จัดโครงสร้างเทมเพลตให้รับมือกับตัวแปรที่ขาดหายได้อย่างนุ่มนวล
  • ทดสอบเทมเพลตด้วยชุดตัวแปรที่มีบ้างไม่มีบ้างในหลายรูปแบบ
  • ใช้ นิพจน์แบบมีเงื่อนไข สำหรับส่วนที่ไม่บังคับ

การเฝ้าติดตาม

เฝ้าติดตามการเชื่อมต่อ webhook ของคุณเพื่อให้แน่ใจว่าทำงานได้ถูกต้อง:

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

ความเป็นส่วนตัวและความปลอดภัย

ทำความเข้าใจว่า Echobell จัดการข้อมูล webhook ของคุณอย่างไร:

ข้อมูลที่ถูกจัดเก็บ

  • บนเซิร์ฟเวอร์ของเรา:

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

    • เนื้อหาการแจ้งเตือน ได้แก่ ข้อความหัวข้อและเนื้อหาที่แสดงผลแล้ว
    • ประวัติการทริกเกอร์ ว่าได้รับการแจ้งเตือนเมื่อใด
    • ค่าของตัวแปร ซึ่งเป็นข้อมูลที่ส่งมาในการเรียก webhook
    • ลิงก์และข้อมูลเมตา เช่น externalLink และข้อมูลอื่นที่เกี่ยวข้อง

ข้อมูลที่ไม่ถูกจัดเก็บ

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

ข้อแนะนำด้านความปลอดภัย

  • ถือว่า webhook URL เป็นคีย์ API เพราะมันเปิดทางให้ส่งการแจ้งเตือนได้โดยไม่ต้องยืนยันตัวตน
  • เปลี่ยน URL เป็นประจำ โดยใช้ฟีเจอร์ "Reset Token" เพื่อสร้าง URL ใหม่
  • ใช้ไคลเอนต์ที่รองรับ HTTPS แม้เราจะรับเฉพาะการเชื่อมต่อ HTTPS อยู่แล้ว แต่ควรตรวจสอบว่าไคลเอนต์ของคุณตรวจสอบใบรับรองด้วย
  • ตรวจสอบแหล่งที่มาของ webhook หากทำได้ ให้จำกัดว่า IP หรือบริการใดบ้างที่เรียก webhook ของคุณได้
  • เฝ้าระวังการใช้งานในทางที่ผิด โดยสังเกตรูปแบบที่ผิดปกติหรือการใช้งานที่ไม่ได้รับอนุญาต
  • แยกสภาพแวดล้อม โดยใช้ช่องคนละช่องสำหรับการพัฒนา การทดสอบก่อนขึ้นจริง และการใช้งานจริง

เรียนรู้เพิ่มเติมได้ที่ เอกสารศูนย์ช่วยเหลือ ของเรา

การแก้ปัญหา

หาก webhook ของคุณทำงานไม่เป็นไปตามที่คาดไว้ ลองทำตามขั้นตอนวินิจฉัยเหล่านี้:

Webhook ไม่ทริกเกอร์การแจ้งเตือน

  1. ตรวจสอบว่า webhook URL ถูกต้อง

    • คัดลอก URL มาจากแอป Echobell โดยตรง
    • ตรวจสอบว่าไม่มีช่องว่างหรืออักขระเกินมา
    • ตรวจสอบว่าคุณใช้ https://hook.echobell.one/t/ ไม่ใช่โดเมนอื่น
  2. ตรวจสอบว่าช่องยังใช้งานอยู่

    • เปิดช่องนั้นในแอป Echobell
    • ตรวจสอบว่าไม่ได้ถูกลบหรือเก็บเข้าคลัง
    • ยืนยันว่าคุณไม่ได้รีเซ็ตโทเคน webhook ไปแล้ว (ซึ่งจะทำให้ URL เดิมใช้ไม่ได้)
  3. ตรวจสอบว่า JSON payload ของคุณมีรูปแบบถูกต้อง (สำหรับคำขอแบบ POST)

    • ใช้เครื่องมือตรวจสอบ JSON เพื่อตรวจ payload ของคุณ
    • ตรวจสอบว่าใส่เครื่องหมายคำพูดรอบสตริงอย่างถูกต้อง
    • ตรวจสอบว่าตั้งเฮดเดอร์ Content-Type เป็น application/json แล้ว
  4. ยืนยันว่าได้ส่งตัวแปรที่จำเป็นทั้งหมดในเทมเพลตของคุณมาครบ

    • ตรวจดูเทมเพลตการแจ้งเตือนของคุณว่าใช้ตัวแปรใดบ้าง
    • ตรวจสอบว่าตัวแปรเหล่านั้นอยู่ในคำขอ webhook ของคุณ (ในพารามิเตอร์ query หรือ JSON body)
    • โปรดจำไว้ว่าตัวแปรที่ขาดหายไปจะแสดงผลเป็นสตริงว่าง
  5. ตรวจสอบว่าช่องมีผู้ติดตามที่ใช้งานอยู่

    • ระบบจะส่งการแจ้งเตือนก็ต่อเมื่อมีคนติดตามช่องนั้นเท่านั้น
    • ตรวจสอบการติดตามของคุณในรายการช่องภายในแอป
    • ตรวจสอบว่าการติดตามไม่ได้ถูกยกเลิกไปโดยไม่ได้ตั้งใจ

การแจ้งเตือนแสดงผลไม่ถูกต้อง

  1. ชื่อตัวแปรไม่ตรงกัน

    • เทมเพลตใช้ {{server_name}} แต่ webhook ส่ง serverName มา
    • ชื่อตัวแปรแยกตัวพิมพ์ใหญ่เล็กและต้องตรงกันทุกตัวอักษร
    • ตรวจหาการพิมพ์ชื่อตัวแปรผิด
  2. เข้าถึงข้อมูลซ้อนชั้นไม่ได้

    • ใช้สัญกรณ์จุด: {{user.name}} หรือสัญกรณ์วงเล็บ: {{user["name"]}}
    • ตรวจสอบว่าโครงสร้าง JSON ของคุณตรงกับที่เทมเพลตคาดหวัง
    • ลองทดสอบด้วยตัวแปรแบบชั้นเดียวง่าย ๆ ก่อน แล้วค่อยเพิ่มการซ้อนชั้น
  3. อักขระพิเศษทำให้เกิดปัญหา

    • เข้ารหัส URL ให้กับพารามิเตอร์ใน query อย่างถูกต้อง
    • escape อักขระพิเศษของ JSON ใน POST body
    • ลองทดสอบด้วยข้อความ ASCII ง่าย ๆ ก่อน

การทดสอบการเชื่อมต่อของคุณ

ใช้ curl เพื่อทดสอบ webhook ของคุณโดยตรง:

# Test with query parameters
curl "https://hook.echobell.one/t/<channel-token>?test=hello&status=working"

# Test with JSON body
curl -X POST https://hook.echobell.one/t/<channel-token> \
  -H "Content-Type: application/json" \
  -d '{"test": "hello", "status": "working"}'

คุณควรได้รับการแจ้งเตือนทันทีหากตั้งค่าทุกอย่างไว้ถูกต้อง

ยังแก้ปัญหาไม่ได้ใช่ไหม

หากคุณลองทำตามขั้นตอนข้างต้นแล้วแต่ยังพบปัญหาอยู่:

  • เยี่ยมชม ศูนย์ช่วยเหลือ ของเราเพื่อดูคู่มือแก้ปัญหาเพิ่มเติม
  • ตรวจสอบว่ามีปัญหาที่ทราบอยู่แล้วหรือการอัปเดตสถานะบริการหรือไม่
  • ติดต่อเราที่ echobell@weelone.com พร้อมแจ้ง:
    • คำอธิบายปัญหา
    • ขั้นตอนที่คุณได้ลองแล้ว
    • ตัวอย่าง webhook URL (โดยลบหรือปิดบังโทเคนไว้)
    • ตัวอย่าง payload ของคำขอ
    • พฤติกรรมที่คาดหวังเทียบกับที่เกิดขึ้นจริง

ขั้นตอนถัดไป

เมื่อคุณเข้าใจการเชื่อมต่อ webhook แล้ว:

พร้อมเชื่อม Echobell เข้ากับระบบของคุณแล้วหรือยัง? สร้างช่องแรกของคุณแล้วเริ่มรับการแจ้งเตือนทันที!