การส่ง OTP

API สำหรับส่ง OTP นี้จะสร้างรหัสยืนยันผ่านแพลตฟอร์ม EngageLab และจัดส่งตามกลยุทธ์ของช่องทางที่ระบุไว้ในเทมเพลต

หากคุณต้องการสร้างรหัสยืนยันด้วยตนเองแทนการใช้แพลตฟอร์ม EngageLab คุณสามารถเรียกใช้ API EngageLab OTP Custom Verification Code Delivery

Endpoint

POST https://otp.api.engagelab.cc/v1/messages

การยืนยันตัวตน

ใช้ 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/messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Request Body

{ "to": "+6591234567", "template": { "id": "test-template-1", "language": "default", "params": { "key1": "value1", "key2": "value2" } } }
              
              {
  "to": "+6591234567",
  "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
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 การยืนยันตัวตนล้มเหลว; ไม่ได้ระบุ token ที่ถูกต้อง
2002 401 การยืนยันตัวตนล้มเหลว; token หมดอายุหรือถูกปิดใช้งานแล้ว
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
ติดต่อฝ่ายขาย