ส่ง OTP แบบกำหนดเอง
หากคุณต้องการสร้างรหัสยืนยันด้วยตัวเองแทนที่จะใช้แพลตฟอร์ม EngageLab คุณสามารถเรียกใช้ API นี้ได้
API นี้ได้รับการออกแบบมาเฉพาะสำหรับการส่งรหัสยืนยันที่สร้างไว้ล่วงหน้าและไม่สามารถสร้างรหัสได้ด้วยตัวเอง หลังจากส่งรหัสยืนยันแล้ว ไม่จำเป็นต้องเรียกใช้ API การยืนยันเพื่อการตรวจสอบ
หากคุณต้องการให้แพลตฟอร์ม EngageLab สร้างรหัสยืนยัน คุณสามารถเรียกใช้ API EngageLab OTP Code Delivery
Endpoint
POST https://otp.api.engagelab.cc/v1/codes
การรับรองความถูกต้อง
ใช้ HTTP Basic Authentication โดยเพิ่ม Authorization ใน HTTP Header:
Authorization: Basic ${base64_auth_string}
base64_auth_string ถูกสร้างขึ้นดังนี้: base64(dev_key:dev_secret)
ตัวอย่างคำขอ
Header ของคำขอ
POST /v1/codes HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
เนื้อหาของคำขอ
{
"to": "+8618701235678",
"code":"398210",
"template":{
"id":"test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
พารามิเตอร์ของคำขอ
วัตถุคำขอแสดงในรูปแบบ JSON ดังนั้นส่วนหัวของคำขอต้องรวม Content-Type: application/json
พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
to | String | จำเป็น | ผู้รับเป้าหมาย หมายเลขโทรศัพท์หรือที่อยู่อีเมล เช่น +8613800138000, support@engagelab.com |
code | String | จำเป็น | รหัสยืนยันที่กำหนดเองเพื่อส่ง |
template | JSON Object | จำเป็น | ข้อมูลเทมเพลต พารามิเตอร์รองแสดงด้านล่าง |
|_ id | String | จำเป็น | รหัสเทมเพลต |
|_ language | String | ไม่จำเป็น | ภาษาเทมเพลต รองรับตัวเลือกดังต่อไปนี้: default ภาษาเริ่มต้น zh_CN ภาษาจีนตัวย่อ zh_HK ภาษาจีนตัวเต็ม en ภาษาอังกฤษ ja ภาษาญี่ปุ่น th ภาษาไทย es ภาษาสเปน หากไม่ได้ระบุ จะใช้ภาษาเริ่มต้น |
|_ 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 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 | การส่งรหัสยืนยันล้มเหลว ดูฟิลด์ข้อความสำหรับรายละเอียด |