การส่งข้อความแบบกำหนดเอง
หากคุณได้สร้างเนื้อหาแม่แบบที่กำหนดเองบนแพลตฟอร์ม OTP คุณสามารถเรียกใช้ API นี้เพื่อส่งเนื้อหาข้อความที่กำหนดเองได้
จุดสิ้นสุดของ API
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)
รูปแบบคำขอ
หัวข้อคำขอ
POST /v1/custom-messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
เนื้อหาคำขอ
{
"to": "+8618701235678",
"template":{
"id":"test-template-1",
"params": {
"code": "codevalue",
"var1":"value1"
}
}
}
พารามิเตอร์คำขอ
วัตถุคำขอแสดงในรูปแบบ JSON ดังนั้นหัวข้อคำขอต้องรวม Content-Type: application/json
พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
to | String | จำเป็น | ผู้รับเป้าหมาย หมายเลขโทรศัพท์หรือที่อยู่อีเมล เช่น +8613800138000, support@engagelab.com |
template | JSON Object | จำเป็น | ข้อมูลแม่แบบ พารามิเตอร์รองแสดงด้านล่าง |
|_ id | String | จำเป็น | รหัสแม่แบบ |
|_ params | JSON Object | ไม่จำเป็น | พารามิเตอร์แม่แบบ |
_ |_ code | String | ไม่จำเป็น | จำเป็นเมื่อประเภทแม่แบบคือรหัสยืนยัน |
_ |_ var | String | ไม่จำเป็น | คีย์ค่าตัวแปรแม่แบบที่กำหนดเอง |
หากคุณได้กำหนดตัวแปรเมื่อสร้างแม่แบบ ให้ส่งค่าของตัวแปรเหล่านั้นที่นี่ หากไม่ได้ส่ง คีย์ตัวแปรจะถูกส่งโดยตรง เช่น {{var1}} |
คำอธิบายสำหรับ params
- สำหรับตัวแปรแม่แบบที่ตั้งไว้ล่วงหน้า เช่น {{brand_name}}, {{ttl}}, {{pwa_url}} เป็นต้น ไม่จำเป็นต้องส่งค่า ระบบจะเปลี่ยนเป็นเนื้อหาที่ระบุระหว่างการสร้างแม่แบบโดยอัตโนมัติ
- หากประเภทแม่แบบคือรหัสยืนยัน ต้องส่งตัวแปร {{code}} มิฉะนั้นจะเกิดข้อผิดพลาด
- สำหรับฟิลด์ตัวแปรที่กำหนดเองในเนื้อหาแม่แบบ ให้ส่งค่าผ่าน
params
ตัวอย่างเช่น หากเนื้อหาแม่แบบคือHi {{name}}, your verify code is {{code}}
คุณต้องส่งพารามิเตอร์เช่นparams:{"name":"Bob"}
ตัวอย่างคำขอ
1. การส่งรหัสยืนยันที่กำหนดเอง:
{
"to": "+8618701235678",
"template":{
"id":"code-template",
"params": {
"code": "123456"
}
}
}
2. การส่งเนื้อหาการแจ้งเตือนที่กำหนดเอง:
{
"to": "+8618701235678",
"template":{
"id":"notification-template",
"params": {
"order":"123456"
}
}
}
3. การส่งเนื้อหาการตลาดที่กำหนดเอง:
{
"to": "+8618701235678",
"template":{
"id":"marketing-template",
"params": {
"name":"EngageLab",
"promotion":"30%"
}
}
}
พารามิเตอร์การตอบกลับ
การตอบกลับสำเร็จ
ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
message_id | String | จำเป็น | รหัสข้อความ ระบุข้อความอย่างเฉพาะเจาะจง |
send_channel | String | จำเป็น | ระบุช่องทางการส่งปัจจุบัน ค่าได้แก่ whatsapp/sms/email/voice |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
หมายเหตุ: ค่า **send_channel**
ที่ส่งกลับมาไม่ได้แสดงถึงช่องทางการส่งขั้นสุดท้ายไปยังผู้ใช้ แต่เป็นเพียงช่องทางที่ใช้ในขั้นตอนนี้ ตัวอย่างเช่น หากกลยุทธ์แม่แบบกำหนดให้ช่องทาง WhatsApp ล้มเหลวในการส่งและส่งซ้ำโดยอัตโนมัติผ่าน SMS API จะส่งค่ากลับเป็น whatsapp หลังจากเวลาหนึ่ง หากตรวจพบความล้มเหลวในการส่ง ระบบจะใช้ช่องทาง SMS เพื่อส่ง
การตอบกลับล้มเหลว
รหัสสถานะ HTTP เป็น 4xx หรือ 5xx และเนื้อหาการตอบกลับประกอบด้วยฟิลด์ดังต่อไปนี้:
ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
code | int | จำเป็น | รหัสข้อผิดพลาด ดูรายละเอียดใน Error Codes |
message | String | จำเป็น | รายละเอียดข้อผิดพลาด |
{
"code": 5001,
"message": "sms send fail"
}
รหัสข้อผิดพลาด
รหัสข้อผิดพลาด | รหัส HTTP | คำอธิบาย |
---|---|---|
1000 | 500 | ข้อผิดพลาดภายใน |
2001 | 401 | การตรวจสอบสิทธิ์ล้มเหลว โทเค็นที่ให้มาไม่ถูกต้อง |
2002 | 401 | การตรวจสอบสิทธิ์ล้มเหลว โทเค็นหมดอายุหรือถูกปิดใช้งาน |
2004 | 403 | ไม่มีสิทธิ์เรียกใช้ API นี้ |
3001 | 400 | รูปแบบพารามิเตอร์คำขอไม่ถูกต้อง ตรวจสอบว่าเนื้อหา JSON ตรงตามรูปแบบพารามิเตอร์หรือไม่ |
3002 | 400 | พารามิเตอร์คำขอไม่ถูกต้อง ตรวจสอบว่าพารามิเตอร์ตรงตามข้อกำหนดหรือไม่ |
3003 | 400 | พารามิเตอร์คำขอไม่ถูกต้อง การตรวจสอบทางธุรกิจล้มเหลว อ้างอิงคำอธิบายในฟิลด์ข้อความ |
3004 | 400 | เกินขีดจำกัดความถี่ ไม่สามารถส่งซ้ำไปยังผู้ใช้เป้าหมายเดียวกันภายในระยะเวลาที่รหัสยืนยันยังคงใช้ได้สำหรับแม่แบบเดียวกัน |
4001 | 400 | ไม่พบทรัพยากร เช่น ใช้แม่แบบที่ไม่มีอยู่สำหรับการส่งข้อความแม่แบบ |
5001 | 400 | การส่งข้อความรหัสยืนยันล้มเหลว อ้างอิงคำอธิบายในฟิลด์ข้อความ |