การส่งข้อความแบบกำหนดเอง
การส่งข้อความแบบกำหนดเอง หากคุณได้สร้างเนื้อหาเทมเพลตแบบกำหนดเองไว้บนแพลตฟอร์ม OTP แล้ว ให้เรียกใช้ API นี้เพื่อส่งเนื้อหาข้อความแบบกำหนดเอง
Endpoint
POST https://otp.api.engagelab.cc/v1/custom-messages
การยืนยันตัวตน
ใช้ HTTP Basic Authentication สำหรับการยืนยันตัวตน และเพิ่ม Authorization ลงใน HTTP Header ดังนี้
Authorization: Basic ${base64_auth_string}
อัลกอริทึมในการสร้าง base64_auth_string คือ base64(dev_key:dev_secret)
รูปแบบคำขอ
Request Headers
POST /v1/custom-messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Request Body
{
"to": "+6591234567",
"template": {
"id": "test-template-1",
"params": {
"code": "codevalue",
"var1": "value1"
}
}
}
พารามิเตอร์คำขอ
อ็อบเจ็กต์คำขอจะแสดงในรูปแบบ JSON ดังนั้น Request Header ต้องมี Content-Type: application/json
| Parameter | Type | Required | Description |
|---|---|---|---|
| to | String | Required | ปลายทางสำหรับการส่ง: หมายเลขโทรศัพท์มือถือหรืออีเมล เช่น +6598765432 หรือ support@engagelab.com |
| template | JSON Object | Required | ข้อมูลเทมเพลต โปรดดูพารามิเตอร์แบบซ้อนด้านล่าง |
| |_ id | String | Required | ID เทมเพลต |
| |_ params | JSON Object | Optional | พารามิเตอร์ของเทมเพลต |
| _ |_ code | String | Optional | จำเป็นเมื่อประเภทเทมเพลตเป็นรหัสยืนยัน |
| _ |_ var | String | Optional | ค่าของคีย์ตัวแปรในเทมเพลตแบบกำหนดเอง หากคุณได้กำหนดตัวแปรแบบกำหนดเองไว้ตอนสร้างเทมเพลต ให้ระบุค่าให้ตัวแปรเหล่านั้นที่นี่ หากไม่ส่งมา ระบบจะส่งคีย์ตัวแปรโดยตรง เช่น {{var1}} |
หมายเหตุเกี่ยวกับ params
- สำหรับตัวแปรเทมเพลตที่ตั้งค่าไว้ล่วงหน้า เช่น
{{brand_name}},{{ttl}}และ{{pwa_url}}คุณไม่จำเป็นต้องส่งค่าเหล่านี้ ระบบจะแทนที่ด้วยเนื้อหาที่ระบุไว้ตอนสร้างเทมเพลตโดยอัตโนมัติ - หากประเภทเทมเพลตเป็นรหัสยืนยัน คุณต้องส่งตัวแปร
{{code}}มิฉะนั้นระบบจะส่งข้อผิดพลาดกลับมา - หากเนื้อหาเทมเพลตมีฟิลด์ตัวแปรแบบกำหนดเองที่กำหนดไว้ตอนสร้างเทมเพลต คุณต้องกำหนดค่าผ่าน
paramsด้วย ตัวอย่างเช่น สำหรับเนื้อหาเทมเพลตHi {{name}}, your verify code is {{code}}คุณต้องกำหนดพารามิเตอร์params: {"name":"Bob"}
ตัวอย่างคำขอ
1. ส่งรหัสยืนยันแบบกำหนดเอง
{
"to": "+6591234567",
"template": {
"id": "code-template",
"params": {
"code": "123456"
}
}
}
2. ส่งเนื้อหาการแจ้งเตือนแบบกำหนดเอง
{
"to": "+6591234567",
"template": {
"id": "notification-template",
"params": {
"order": "123456"
}
}
}
3. ส่งเนื้อหาทางการตลาดแบบกำหนดเอง
{
"to": ["+6591234567"],
"template": {
"id": "marketing-template",
"params": {
"name": "EngageLab",
"promotion": "30%"
}
}
}
พารามิเตอร์การตอบกลับ
การตอบกลับเมื่อสำเร็จ
| Field | Type | Required | Description |
|---|---|---|---|
| message_id | String | Required | ID ข้อความที่ใช้ระบุข้อความแต่ละรายการแบบไม่ซ้ำกัน |
| send_channel | String | Required | ระบุช่องทางที่ใช้ส่งในปัจจุบัน ค่าที่เป็นไปได้ ได้แก่ whatsapp, sms, email, voice |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
โปรดทราบว่า ค่า send_channel ที่ส่งกลับมาไม่ได้หมายถึงช่องทางสุดท้ายที่ใช้ส่งข้อความถึงผู้ใช้ แต่ระบุเพียงช่องทางที่กำลังใช้งานอยู่ในขณะนั้นเท่านั้น ตัวอย่างเช่น หากกลยุทธ์ที่กำหนดไว้ในเทมเพลตระบุว่า เมื่อการส่งผ่าน WhatsApp ล้มเหลว ให้ลองส่งซ้ำผ่านช่องทาง SMS โดยอัตโนมัติ การตอบกลับของ API จะส่งกลับเป็น whatsapp หลังจากระบบตรวจพบความล้มเหลวในการส่งภายในช่วงเวลาหนึ่งแล้ว ระบบจึงจะส่งผ่านช่องทาง SMS
การตอบกลับเมื่อไม่สำเร็จ
HTTP status code คือ 4xx หรือ 5xx และ Response Body จะมีฟิลด์ต่อไปนี้
| Field | Type | Required | Description |
|---|---|---|---|
| code | int | Required | รหัสข้อผิดพลาด สำหรับรายละเอียด โปรดดู Error Codes |
| message | String | Required | รายละเอียดข้อผิดพลาด |
{
"code": 5001,
"message": "sms send fail"
}
Error Codes
| Error Code | HTTP Code | Description |
|---|---|---|
| 1000 | 500 | ข้อผิดพลาดภายในระบบ |
| 2001 | 401 | การยืนยันตัวตนล้มเหลว ไม่ได้ส่งโทเค็นที่ถูกต้องมา |
| 2002 | 401 | การยืนยันตัวตนล้มเหลว โทเค็นหมดอายุหรือถูกปิดใช้งานแล้ว |
| 2004 | 403 | ไม่มีสิทธิ์เรียกใช้ API นี้ |
| 3001 | 400 | รูปแบบพารามิเตอร์คำขอไม่ถูกต้อง โปรดตรวจสอบว่าเนื้อหา JSON ตรงตามรูปแบบพารามิเตอร์ที่กำหนดหรือไม่ |
| 3002 | 400 | พารามิเตอร์คำขอไม่ถูกต้อง โปรดตรวจสอบว่าพารามิเตอร์คำขอตรงตามข้อกำหนดหรือไม่ |
| 3003 | 400 | พารามิเตอร์คำขอไม่ถูกต้อง การตรวจสอบทางธุรกิจที่เกี่ยวข้องไม่ผ่าน โปรดดูรายละเอียดในคำอธิบายข้อผิดพลาดของฟิลด์ message |
| 3004 | 400 | เกินขีดจำกัดความถี่ สำหรับเทมเพลตเดียวกันและผู้ใช้เป้าหมายเดียวกัน จะไม่สามารถเริ่มการส่งซ้ำได้อีกภายในช่วงเวลาที่รหัสยืนยันยังมีผล |
| 4001 | 400 | ไม่มีทรัพยากรที่เกี่ยวข้องอยู่จริง ตัวอย่างเช่น ใช้เทมเพลตที่ไม่มีอยู่จริงในการส่งข้อความเทมเพลต |
| 5001 | 400 | การส่งล้มเหลว (ทั่วไป/อื่น ๆ) |
| 5011 | 400 | รูปแบบหมายเลขโทรศัพท์มือถือไม่ถูกต้อง |
| 5012 | 400 | ไม่สามารถเข้าถึงปลายทางได้ |
| 5013 | 400 | หมายเลขถูกเพิ่มในบัญชีดำแล้ว |
| 5014 | 400 | เนื้อหาไม่เป็นไปตามข้อกำหนด |
| 5015 | 400 | ข้อความถูกสกัดกั้น/ปฏิเสธ |
| 5016 | 400 | ข้อผิดพลาดภายในการส่ง |
| 5017 | 400 | ไม่มีสิทธิ์ส่งไปยังจีนแผ่นดินใหญ่ |
| 5018 | 400 | ปัญหาที่อุปกรณ์มือถือ (ปิดเครื่อง/ระงับบริการ) |
| 5019 | 400 | ผู้ใช้ยกเลิกการสมัครแล้ว |
| 5020 | 400 | หมายเลขยังไม่ได้ลงทะเบียน/หมายเลขไม่ถูกต้อง |










