การส่งรหัส OTP แบบกำหนดเอง
หากคุณต้องการสร้างรหัสยืนยันด้วยตนเองแทนการให้แพลตฟอร์ม EngageLab สร้างให้ คุณสามารถเรียกใช้ API นี้ได้
API นี้ใช้สำหรับส่งรหัสยืนยันที่สร้างไว้ล่วงหน้าโดยเฉพาะ และจะไม่สร้างรหัสยืนยันด้วยตัวเอง หลังจากส่งรหัสยืนยันแล้ว ก็ไม่จำเป็นต้องเรียก API สำหรับยืนยันเพื่อตรวจสอบความถูกต้องของรหัสดังกล่าว
หากคุณต้องการให้แพลตฟอร์ม EngageLab สร้างรหัสยืนยัน คุณสามารถเรียกใช้ API EngageLab OTP Verification 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)
ตัวอย่างคำขอ
Request Header
POST /v1/codes HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Request Body
{
"to": "+6591234567",
"code": "398210",
"template": {
"id": "test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
พารามิเตอร์คำขอ
ออบเจ็กต์คำขอแสดงในรูปแบบ JSON ดังนั้น request header ต้องมี Content-Type: application/json
| Parameter | Type | Required | Description |
|---|---|---|---|
| to | String | Required | ปลายทางสำหรับการส่ง: หมายเลขโทรศัพท์หรืออีเมล เช่น +6598765432 หรือ support@engagelab.com |
| code | String | Required | รหัสยืนยันแบบกำหนดเองที่ต้องการส่ง |
| template | JSON Object | Required | ข้อมูลเทมเพลต ดูพารามิเตอร์ระดับที่สองด้านล่าง |
| |_ id | String | Required | ID เทมเพลต |
| |_ language | String | Optional | ภาษาของเทมเพลต รองรับภาษาต่อไปนี้: default ภาษาเริ่มต้น zh_CN ภาษาจีนตัวย่อ zh_HK ภาษาจีนตัวเต็ม en ภาษาอังกฤษ ja ภาษาญี่ปุ่น th ภาษาไทย es ภาษาสเปน หากไม่ระบุ ค่าเริ่มต้นคือ default (ภาษาเริ่มต้น) |
| |_ params | JSON Object | Optional | ค่าสำหรับคีย์ตัวแปรแบบกำหนดเองของเทมเพลต หากคุณได้กำหนดตัวแปรแบบกำหนดเองไว้เมื่อสร้างเทมเพลต ให้กำหนดค่าของตัวแปรเหล่านั้นที่นี่ หากไม่ระบุ ระบบจะส่งคีย์ตัวแปรโดยตรง เช่น {{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"}
พารามิเตอร์การตอบกลับ
การตอบกลับเมื่อสำเร็จ
| 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 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 | หมายเลขยังไม่ได้ลงทะเบียน/หมายเลขไม่ถูกต้อง |










