ส่ง
อินเทอร์เฟซนี้ใช้โดยแพลตฟอร์ม EngageLab เพื่อสร้างรหัสยืนยันและส่งมอบตามกลยุทธ์ช่องทางที่ระบุไว้ในเทมเพลต
หากคุณต้องการสร้างรหัสยืนยันด้วยตัวเองโดยไม่ใช้แพลตฟอร์ม EngageLab คุณสามารถเรียกใช้อินเทอร์เฟซ EngageLab OTP Custom Verification Code Delivery
จุดสิ้นสุด
POST https://otp.api.engagelab.cc/v1/messages
การตรวจสอบสิทธิ์
ใช้ HTTP Basic Authentication เพิ่มส่วนหัว Authorization ใน HTTP Header:
Authorization: Basic ${base64_auth_string}
อัลกอริทึมการสร้าง base64_auth_string ด้านบนคือ: base64(dev_key:dev_secret)
ตัวอย่างคำขอ
ส่วนหัวคำขอ
POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
เนื้อหาคำขอ
{
"to": "+8618701235678",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
พารามิเตอร์คำขอ
วัตถุคำขอแสดงในรูปแบบ JSON ดังนั้นส่วนหัวคำขอต้องรวม Content-Type: application/json
พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
to | String | จำเป็น | ผู้รับเป้าหมาย หมายเลขโทรศัพท์หรือที่อยู่อีเมล เช่น +8613800138000, support@engagelab.com |
template | JSON Object | จำเป็น | ข้อมูลเทมเพลต พารามิเตอร์รองแสดงด้านล่าง |
|_ id | String | จำเป็น | รหัสเทมเพลต |
|_ language | String | ไม่บังคับ | ภาษาของเทมเพลต รองรับภาษาดังต่อไปนี้: default ภาษาเริ่มต้น zh_CN ภาษาจีนตัวย่อ zh_HK ภาษาจีนตัวเต็ม en ภาษาอังกฤษ ja ภาษาญี่ปุ่น th ภาษาไทย es ภาษาสเปน หากไม่ได้ระบุ จะใช้ภาษาเริ่มต้น (default) |
|_ params | JSON Object | ไม่บังคับ | ค่าคีย์ตัวแปรเทมเพลตที่กำหนดเอง หากคุณกำหนดตัวแปรเองเมื่อสร้างเทมเพลต ให้ระบุค่าที่นี่ หากไม่ได้ระบุ คีย์ตัวแปรจะถูกส่งโดยตรง เช่น {{var}} |
คำอธิบาย params
- สำหรับฟิลด์ที่ตั้งไว้ในเทมเพลต เช่น from_id หากไม่ได้ระบุค่าฟิลด์ param_vars จะใช้ from_id ที่ตั้งไว้ในเทมเพลตเมื่อส่งข้อความ
- หากระบุค่าฟิลด์ param_vars เช่น
param_vars:{"from_id":"12345"}
from_id ของเทมเพลตจะถูกแทนที่ด้วย 12345 เมื่อส่งข้อความ - ในทำนองเดียวกัน สำหรับฟิลด์ตัวแปรที่กำหนดเองในเนื้อหาเทมเพลต สามารถกำหนดค่าผ่าน param_vars ได้ ตัวอย่างเช่น หากเนื้อหาเทมเพลตคือ
Hi {{name}}, your verify code is {{code}}
คุณต้องกำหนดพารามิเตอร์เช่นparam_vars:{"name":"Bob"}
พารามิเตอร์การตอบกลับ
การตอบกลับสำเร็จ
ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
message_id | String | จำเป็น | รหัสข้อความ ระบุข้อความที่ไม่ซ้ำกัน |
send_channel | String | จำเป็น | ระบุช่องทางการส่งในปัจจุบัน ค่าที่เป็นไปได้คือ whatsapp/sms/email/voice |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
หมายเหตุ: ค่าที่ส่งคืน **send_channel**
ไม่ได้แสดงถึงช่องทางสุดท้ายที่ส่งถึงผู้ใช้ แต่เป็นเพียงช่องทางที่ใช้อยู่ในปัจจุบัน ตัวอย่างเช่น หากกลยุทธ์ของเทมเพลตกำหนดให้ WhatsApp เป็นช่องทางหลักและ SMS เป็นช่องทางสำรองในกรณีที่การส่งล้มเหลว อินเทอร์เฟซจะส่งคืนค่า 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 | ไม่มีสิทธิ์เรียกใช้อินเทอร์เฟซนี้ |
3001 | 400 | รูปแบบพารามิเตอร์คำขอไม่ถูกต้อง ตรวจสอบว่าข้อมูลเป็น JSON ที่ถูกต้องหรือไม่ |
3002 | 400 | พารามิเตอร์คำขอไม่ถูกต้อง ตรวจสอบว่าพารามิเตอร์ตรงตามข้อกำหนดหรือไม่ |
3003 | 400 | พารามิเตอร์คำขอไม่ถูกต้อง การตรวจสอบทางธุรกิจล้มเหลว ดูรายละเอียดข้อผิดพลาดในฟิลด์ message |
3004 | 400 | เกินขีดจำกัดอัตรา ไม่สามารถส่งอีกครั้งภายในระยะเวลาที่รหัสยืนยันยังมีผลสำหรับเทมเพลตและผู้ใช้เป้าหมายเดียวกัน |
4001 | 400 | ไม่พบทรัพยากรที่เกี่ยวข้อง เช่น ใช้เทมเพลตที่ไม่มีอยู่สำหรับการส่งข้อความเทมเพลต |
5001 | 400 | การส่งข้อความรหัสยืนยันล้มเหลว ดูรายละเอียดข้อผิดพลาดในฟิลด์ message |