การส่งข้อความแบบกำหนดเอง

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

Endpoint

POST https://otp.api.engagelab.cc/v1/custom-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 Headers

POST /v1/custom-messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/custom-messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

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

Request Body

{ "to": "+6591234567", "template": { "id": "test-template-1", "params": { "code": "codevalue", "var1": "value1" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "test-template-1",
    "params": {
      "code": "codevalue",
      "var1": "value1"
    }
  }
}

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

พารามิเตอร์คำขอ

อ็อบเจ็กต์คำขอจะแสดงในรูปแบบ 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 เทมเพลต
|_ params JSON Object Optional พารามิเตอร์ของเทมเพลต
_ |_ code String Optional จำเป็นเมื่อประเภทเทมเพลตเป็นรหัสยืนยัน
_ |_ var String Optional ค่าของคีย์ตัวแปรในเทมเพลตแบบกำหนดเอง หากคุณได้กำหนดตัวแปรแบบกำหนดเองไว้ตอนสร้างเทมเพลต ให้ระบุค่าให้ตัวแปรเหล่านั้นที่นี่ หากไม่ส่งมา ระบบจะส่งคีย์ตัวแปรโดยตรง เช่น {{var1}}

หมายเหตุเกี่ยวกับ params

  1. สำหรับตัวแปรเทมเพลตที่ตั้งค่าไว้ล่วงหน้า เช่น {{brand_name}}, {{ttl}} และ {{pwa_url}} คุณไม่จำเป็นต้องส่งค่าเหล่านี้ ระบบจะแทนที่ด้วยเนื้อหาที่ระบุไว้ตอนสร้างเทมเพลตโดยอัตโนมัติ
  2. หากประเภทเทมเพลตเป็นรหัสยืนยัน คุณต้องส่งตัวแปร {{code}} มิฉะนั้นระบบจะส่งข้อผิดพลาดกลับมา
  3. หากเนื้อหาเทมเพลตมีฟิลด์ตัวแปรแบบกำหนดเองที่กำหนดไว้ตอนสร้างเทมเพลต คุณต้องกำหนดค่าผ่าน params ด้วย ตัวอย่างเช่น สำหรับเนื้อหาเทมเพลต Hi {{name}}, your verify code is {{code}} คุณต้องกำหนดพารามิเตอร์ params: {"name":"Bob"}

ตัวอย่างคำขอ

1. ส่งรหัสยืนยันแบบกำหนดเอง

{ "to": "+6591234567", "template": { "id": "code-template", "params": { "code": "123456" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "code-template",
    "params": {
      "code": "123456"
    }
  }
}

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

2. ส่งเนื้อหาการแจ้งเตือนแบบกำหนดเอง

{ "to": "+6591234567", "template": { "id": "notification-template", "params": { "order": "123456" } } }
              
              {
  "to": "+6591234567",
  "template": {
    "id": "notification-template",
    "params": {
      "order": "123456"
    }
  }
}

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

3. ส่งเนื้อหาทางการตลาดแบบกำหนดเอง

{ "to": ["+6591234567"], "template": { "id": "marketing-template", "params": { "name": "EngageLab", "promotion": "30%" } } }
              
              {
  "to": ["+6591234567"],
  "template": {
    "id": "marketing-template",
    "params": {
      "name": "EngageLab",
      "promotion": "30%"
    }
  }
}

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

พารามิเตอร์การตอบกลับ

การตอบกลับเมื่อสำเร็จ

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 Codes

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
ติดต่อฝ่ายขาย