การทำความเข้าใจ WebHook
WebHook คือช่องทางที่ลูกค้าจะได้รับการอัปเดตเกี่ยวกับคำขอที่ส่งไป หลังจากที่ผู้ใช้ส่งคำขอทางอีเมลไปยัง EngageLab, EngageLab จะส่ง "ผลลัพธ์คำขอ" กลับไปยังผู้ใช้อย่างซิงโครนัส ในขณะที่ "ผลลัพธ์การส่ง" ของอีเมลและ "ผลลัพธ์เหตุการณ์อื่นๆ" จะถูกส่งกลับไปยังผู้ใช้อย่างอะซิงโครนัสผ่าน WebHook
กลไกของ WebHook
- EngageLab ให้บริการเหตุการณ์อีเมลหลายประเภทแก่ลูกค้า และลูกค้าสามารถเลือกติดตามเหตุการณ์เฉพาะได้
- เมื่อมีเหตุการณ์เกิดขึ้น จะทำให้ EngageLab ส่งข้อมูล (POST) ไปยัง URL ที่ลูกค้ากำหนด
- ประเภทข้อมูลที่ EngageLab ส่ง: "Content-Type: application/json"
- ลูกค้าจะได้รับข้อมูล วิเคราะห์เหตุการณ์และข้อมูล และต้องส่งคืน HTTP Status Code 200 ภายใน 3 วินาที มิฉะนั้น EngageLab จะส่งข้อความซ้ำ
การใช้งาน
- ผู้ใช้เขียนบริการ HTTP ของตนเองเพื่อจัดการเหตุการณ์ที่เกี่ยวข้อง วิเคราะห์ข้อมูลที่เกี่ยวข้อง และเปิดเผย URL ที่เกี่ยวข้อง
- ผู้ใช้เลือกเหตุการณ์ที่ต้องการติดตามและกำหนดค่า URL สำหรับรับข้อมูลใน
WebHook
ของ EngageLab
การตรวจสอบลายเซ็น
เพื่อให้แน่ใจว่าแหล่งที่มาของข้อความคือ EngageLab คุณสามารถเลือกทำการตรวจสอบความปลอดภัยของแหล่งที่มาของข้อมูล POST ได้ (คุณสามารถข้ามการตรวจสอบและวิเคราะห์ข้อมูล POST ได้โดยตรง)
วิธีการตรวจสอบความปลอดภัยมีดังนี้:
- รับ
APP KEY
ผ่าน【การตั้งค่าการส่ง】-【WebHook】
- วิเคราะห์
X-WebHook-Timestamp
จาก Header - วิเคราะห์
X-WebHook-AppKey
จาก Header - วิเคราะห์
X-WebHook-Signature
จาก Header - ใช้ md5(X-WebHook-Timestamp+X-WebHook-AppKey+APP KEY) เพื่อสร้างลายเซ็น
signature
และเปรียบเทียบกับX-WebHook-Signature
กลไกการตอบกลับ
หลังจากที่บริการนักพัฒนาได้รับการเรียกกลับจาก EngageLab จะต้องตอบกลับภายใน 3 วินาทีดังนี้:
การรับสำเร็จ: รหัสสถานะการตอบกลับ HTTP ต้องส่งคืน 200 หรือ 204 และไม่จำเป็นต้องมีข้อความตอบกลับ
การรับล้มเหลว: รหัสสถานะการตอบกลับ HTTP ต้องส่งคืน 5XX หรือ 4XX และต้องส่งข้อความตอบกลับในรูปแบบดังนี้:
{"code":2002,“message”:"failed"}
ฟิลด์ | ประเภท | จำเป็น/ไม่จำเป็น | คำอธิบาย |
---|---|---|---|
code | int | ไม่จำเป็น | รหัสข้อผิดพลาด |
message | string | ไม่จำเป็น | ข้อมูลข้อผิดพลาดโดยละเอียด |
กลไกการลองใหม่
หากมีข้อผิดพลาดในการเข้าถึง URL หรือการหมดเวลา EngageLab จะลองใหม่สูงสุด 7 ครั้ง โดยช่วงเวลาการลองใหม่คือ 3 นาที, 10 นาที, 30 นาที, 1 ชั่วโมง, 6 ชั่วโมง, 12 ชั่วโมง และ 24 ชั่วโมง ซึ่งให้เวลาคุณเพียงพอในการแก้ไข URL ก่อนที่ข้อความจะสูญหาย
หากเกินขีดจำกัดการลองใหม่ EngageLab จะละทิ้งข้อความ
สำหรับการจัดการเหตุการณ์และการวิเคราะห์ข้อมูลแต่ละครั้ง คุณต้องส่งคืน "การตอบกลับสำเร็จ" ภายใน 3 วินาที มิฉะนั้น EngageLab จะส่งข้อความซ้ำ