การส่งรหัส 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}
              
              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
              
              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" } } }
              
              {
  "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

  1. สำหรับฟิลด์เทมเพลตที่ตั้งค่าไว้ล่วงหน้า เช่น from_id หากไม่ได้ระบุค่าของฟิลด์ param_vars ระบบจะใช้ from_id ที่ตั้งค่าไว้ล่วงหน้าในเทมเพลตเมื่อส่งข้อความ
  2. หากระบุค่าของฟิลด์ param_vars เช่น param_vars:{"from_id":"12345"} เมื่อส่งข้อความ from_id ของเทมเพลตจะถูกแทนที่ด้วย 12345
  3. ฟิลด์ตัวแปรแบบกำหนดเองในเนื้อหาเทมเพลตที่สร้างไว้ระหว่างการสร้างเทมเพลตก็กำหนดค่าผ่าน 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" }
              
              {
  "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" }
              
              {
  "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 หมายเลขยังไม่ได้ลงทะเบียน/หมายเลขไม่ถูกต้อง
Icon Solid Transparent White Qiyu
ติดต่อฝ่ายขาย