การจัดการเทมเพลต API

ภาพรวม

Template Management API ช่วยให้คุณสามารถดำเนินการสร้าง อ่าน อัปเดต และลบเทมเพลต WABA ได้

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

EngageLab REST API ใช้ HTTP Basic Authentication สำหรับการตรวจสอบ: เพิ่ม Authorization ใน HTTP Header:

Authorization: Basic ${base64_auth_string}
              
              Authorization: Basic ${base64_auth_string}

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

base64_auth_string ถูกสร้างดังนี้: base64(dev_key:dev_secret)

  • ชื่อ header คือ "Authorization" และค่าคือคู่ "username:password" ที่เข้ารหัส base64 (มีเครื่องหมายโคลอนคั่นกลาง)
  • ในบริบทของ WhatsApp API, username คือ DevKey และ password คือ DevSecret กรุณารับข้อมูลนี้จาก Console - Configuration Management - API Keys page.

ดึงรายการเทมเพลต

Endpoint

GET https://wa.api.engagelab.cc/v1/templates

พารามิเตอร์การร้องขอ

พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
name String ตัวเลือก ชื่อเทมเพลต โปรดทราบว่าฟิลด์นี้ใช้การจับคู่แบบคลุมเครือ
language_code String ตัวเลือก ภาษาเทมเพลต ดูที่ Language Codes
category String ตัวเลือก หมวดหมู่ของเทมเพลต
● AUTHENTICATION: รหัสยืนยัน
● MARKETING: การตลาด
● UTILITY: การแจ้งเตือนบริการ
status String ตัวเลือก สถานะของเทมเพลต:
  • APPROVED - อนุมัติแล้ว
  • PENDING - อยู่ระหว่างการตรวจสอบ
  • REJECTED - ถูกปฏิเสธ
  • PENDING_DELETION - รอการลบ
  • DELETED - ถูกลบ
  • DISABLED - ถูกปิดใช้งาน (ถูกแบน)
  • IN_APPEAL - อยู่ระหว่างการอุทธรณ์
  • PAUSED - หยุดชั่วคราว
    นักพัฒนาควรให้ความสำคัญกับ APPROVED/PENDING/REJECTED/DISABLED เป็นหลัก
  • พารามิเตอร์การตอบกลับ

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    id String จำเป็น รหัสเทมเพลต
    name String จำเป็น ชื่อเทมเพลต
    language String จำเป็น ภาษาเทมเพลต ดูที่ Language Codes.
    category String จำเป็น หมวดหมู่ของเทมเพลต.
  • AUTHENTICATION
  • MARKETING
  • UTILITY
  • components Object Array จำเป็น ส่วนประกอบของเนื้อหาเทมเพลต ดูที่ components object in Create Template
    status String จำเป็น สถานะของเทมเพลต:
  • APPROVED - อนุมัติแล้ว
  • PENDING - อยู่ระหว่างการตรวจสอบ
  • REJECTED - ถูกปฏิเสธ
  • PENDING_DELETION - รอการลบ
  • DELETED - ถูกลบ
  • DISABLED - ถูกปิดใช้งาน (ถูกแบน)
  • IN_APPEAL - อยู่ระหว่างการอุทธรณ์
  • PAUSED - หยุดชั่วคราว
    นักพัฒนาควรให้ความสำคัญกับ APPROVED/PENDING/REJECTED/DISABLED เป็นหลัก
  • ตัวอย่างการตอบกลับ

    // JSON array ที่แต่ละ object แสดงข้อมูลของเทมเพลต [ { "id": "406979728071589", // รหัสเทมเพลต "name": "code", // ชื่อเทมเพลต "language": "zh_CN", // ภาษาเทมเพลต "status": "APPROVED", // สถานะ APPROVED หมายถึงอนุมัติและใช้งานได้ "category": "OTP", // หมวดหมู่ ปัจจุบันรองรับ OTP/TRANSACTIONAL/MARKETING "components": [ // เนื้อหาเฉพาะของเทมเพลต สามารถรวม HEADER/BODY/FOOTER/BUTTON { "type": "HEADER", "format": "text", // ประเภท รองรับ text/image/location/video/document ค่าเริ่มต้นคือ TEXT "text": "รหัสยืนยันการลงทะเบียน" // เนื้อหาแบบข้อความ จำเป็นเมื่อ format เป็น text }, { "type": "BODY", "text": "รหัสยืนยันของคุณคือ {{1}} โปรดกรอกภายใน 5 นาที." // ตัวแปรในวงเล็บปีกกา {{}} แสดงถึงตัวแปรของเทมเพลต } ] }, ...... ]
                  
                  // JSON array ที่แต่ละ object แสดงข้อมูลของเทมเพลต
    [
    {
    "id": "406979728071589", // รหัสเทมเพลต
    "name": "code", // ชื่อเทมเพลต
    "language": "zh_CN", // ภาษาเทมเพลต
    "status": "APPROVED", // สถานะ APPROVED หมายถึงอนุมัติและใช้งานได้
    "category": "OTP", // หมวดหมู่ ปัจจุบันรองรับ OTP/TRANSACTIONAL/MARKETING
    "components": [ // เนื้อหาเฉพาะของเทมเพลต สามารถรวม HEADER/BODY/FOOTER/BUTTON
    {
    "type": "HEADER",
    "format": "text", // ประเภท รองรับ text/image/location/video/document ค่าเริ่มต้นคือ TEXT
    "text": "รหัสยืนยันการลงทะเบียน" // เนื้อหาแบบข้อความ จำเป็นเมื่อ format เป็น text
    },
    {
    "type": "BODY",
    "text": "รหัสยืนยันของคุณคือ {{1}} โปรดกรอกภายใน 5 นาที." // ตัวแปรในวงเล็บปีกกา {{}} แสดงถึงตัวแปรของเทมเพลต
    }
    ]
    },
    ......
    ]
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ดึงข้อมูลเทมเพลต

    Endpoint

    GET https://wa.api.engagelab.cc/v1//{template_id}

    ที่ {template_id} คือรหัสของเทมเพลตที่ต้องการสอบถาม

    พารามิเตอร์การร้องขอ

    NULL

    ตัวอย่างการร้องขอ

    GET https://wa.api.engagelab.cc/v1/templates/406979728071589
                  
                  GET https://wa.api.engagelab.cc/v1/templates/406979728071589
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

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

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    id String จำเป็น รหัสเทมเพลต
    name String จำเป็น ชื่อเทมเพลต
    language String จำเป็น ภาษาเทมเพลต ดูที่ Language Codes.
    category String จำเป็น หมวดหมู่ของเทมเพลต.
  • OTP: รหัสผ่านครั้งเดียว
  • MARKETING: การตลาด
  • TRANSACTIONAL: ธุรกรรม
    หมายเหตุ: หมวดหมู่เทมเพลตจะได้รับการอัปเดตภายในวันที่ 1 พฤษภาคม 2023 เป็น:
  • AUTHENTICATION
  • MARKETING
  • UTILITY
  • components Object Array จำเป็น ส่วนประกอบของเนื้อหาเทมเพลต ดูที่ components object in Create Template
    status String จำเป็น สถานะของเทมเพลต:
    APPROVED, IN_APPEAL, PENDING, REJECTED, PENDING_DELETION, DELETED, DISABLED, PAUSED, LIMIT_EXCEEDED

    ตัวอย่างการตอบกลับ

    { "id": "406979728071589", // รหัสเทมเพลต "name": "code", // ชื่อเทมเพลต "language": "zh_CN", // ภาษาเทมเพลต "status": "APPROVED", // สถานะ APPROVED หมายถึงอนุมัติและใช้งานได้ "category": "OTP", // หมวดหมู่ ปัจจุบันรองรับ OTP/TRANSACTIONAL/MARKETING "components": [ // เนื้อหาเฉพาะของเทมเพลต สามารถรวม HEADER/BODY/FOOTER/BUTTON { "type": "HEADER", "format": "text", // ประเภท รองรับ text/image/location/video/document ค่าเริ่มต้นคือ TEXT "text": "รหัสยืนยันการลงทะเบียน" // เนื้อหาแบบข้อความ จำเป็นเมื่อ format เป็น text }, { "type": "BODY", "text": "รหัสยืนยันของคุณคือ {{1}} โปรดกรอกภายใน 5 นาที." // ตัวแปรในวงเล็บปีกกา {{}} แสดงถึงตัวแปรของเทมเพลต } ] }
                  
                  {
    "id": "406979728071589", // รหัสเทมเพลต
    "name": "code", // ชื่อเทมเพลต
    "language": "zh_CN", // ภาษาเทมเพลต
    "status": "APPROVED", // สถานะ APPROVED หมายถึงอนุมัติและใช้งานได้
    "category": "OTP", // หมวดหมู่ ปัจจุบันรองรับ OTP/TRANSACTIONAL/MARKETING
    "components": [ // เนื้อหาเฉพาะของเทมเพลต สามารถรวม HEADER/BODY/FOOTER/BUTTON
    {
    "type": "HEADER",
    "format": "text", // ประเภท รองรับ text/image/location/video/document ค่าเริ่มต้นคือ TEXT
    "text": "รหัสยืนยันการลงทะเบียน" // เนื้อหาแบบข้อความ จำเป็นเมื่อ format เป็น text
    },
    {
    "type": "BODY",
    "text": "รหัสยืนยันของคุณคือ {{1}} โปรดกรอกภายใน 5 นาที." // ตัวแปรในวงเล็บปีกกา {{}} แสดงถึงตัวแปรของเทมเพลต
    }
    ]
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    สร้างเทมเพลต

    Endpoint

    POST https://wa.api.engagelab.cc/v1/templates

    ตัวอย่างการร้องขอ

    { "name": "template_name", // ชื่อเทมเพลต อนุญาตให้ใช้ชื่อซ้ำได้ รองรับเฉพาะตัวอักษรตัวพิมพ์เล็ก ตัวเลข และขีดล่าง "language": "zh_CN", // ภาษาเทมเพลต ชื่อซ้ำไม่สามารถมีภาษาเดียวกันได้ "category": "OTP", // หมวดหมู่ ปัจจุบันรองรับ OTP/TRANSACTIONAL/MARKETING "components": [ { // เนื้อหาเทมเพลต "type": "BODY", // บล็อกเนื้อหา ปัจจุบันรองรับ HEADER/BODY/FOOTER/BUTTONS "text": "define var as {{1}}" // ข้อความเฉพาะ ฟิลด์ format ไม่จำเป็นเมื่อ body เป็นข้อความ "example": { "body_text": [ [ "var1" ] ] } }, { "type": "HEADER", "format": "image", // ประเภทเนื้อหา รองรับ text/image/video/document/location "example": { "header_handle": [ "https://jiguang.cn/demopic.jpg" ] } }, { "type": "FOOTER", "text": "footer only support text without variable" }, { "type": "BUTTONS", "buttons": [ { "type": "PHONE_NUMBER", // ประเภทปุ่ม รองรับ PHONE_NUMBER/URL/QUICK_REPLY "text": "this is a phone number", "phone_number": "8613800138000" } ] } ] }
                  
                  {
    "name": "template_name", // ชื่อเทมเพลต อนุญาตให้ใช้ชื่อซ้ำได้ รองรับเฉพาะตัวอักษรตัวพิมพ์เล็ก ตัวเลข และขีดล่าง
    "language": "zh_CN", // ภาษาเทมเพลต ชื่อซ้ำไม่สามารถมีภาษาเดียวกันได้
    "category": "OTP", // หมวดหมู่ ปัจจุบันรองรับ OTP/TRANSACTIONAL/MARKETING
    "components": [
    { // เนื้อหาเทมเพลต
    "type": "BODY", // บล็อกเนื้อหา ปัจจุบันรองรับ HEADER/BODY/FOOTER/BUTTONS
    "text": "define var as {{1}}" // ข้อความเฉพาะ ฟิลด์ format ไม่จำเป็นเมื่อ body เป็นข้อความ
    "example": {
    "body_text": [
    [
    "var1"
    ]
    ]
    }
    },
    {
    "type": "HEADER",
    "format": "image", // ประเภทเนื้อหา รองรับ text/image/video/document/location
    "example": {
    "header_handle": [
    "https://jiguang.cn/demopic.jpg"
    ]
    }
    },
    {
    "type": "FOOTER",
    "text": "footer only support text without variable"
    },
    {
    "type": "BUTTONS",
    "buttons": [
    {
    "type": "PHONE_NUMBER", // ประเภทปุ่ม รองรับ PHONE_NUMBER/URL/QUICK_REPLY
    
    "text": "this is a phone number",
    "phone_number": "8613800138000"
    }
    ]
    }
    ]
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    พารามิเตอร์การร้องขอ

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    name String จำเป็น ชื่อเทมเพลต รองรับเฉพาะตัวอักษรตัวพิมพ์เล็ก ตัวเลข และขีดล่าง สูงสุด 512 ตัวอักษร
    language String จำเป็น ภาษาเทมเพลต ดูที่ Language Codes.
    category String จำเป็น หมวดหมู่ของเทมเพลต.
  • OTP: รหัสผ่านครั้งเดียว
  • MARKETING: การตลาด
  • TRANSACTIONAL: ธุรกรรม
    หมายเหตุ: หมวดหมู่เทมเพลตจะได้รับการอัปเดตภายในวันที่ 1 พฤษภาคม 2023 เป็น:
  • AUTHENTICATION
  • MARKETING
  • UTILITY
  • components Object Array จำเป็น อธิบายส่วนประกอบของเนื้อหาเทมเพลต ดูที่ components object; โปรดทราบว่าต้องมี components ที่ type=BODY

    components Object

    Object นี้ใช้สำหรับอธิบายเนื้อหาเทมเพลต เทมเพลตแบ่งออกเป็นส่วน "HEADER", "BODY", "FOOTER" และ "BUTTONS" โดยกำหนดผ่านฟิลด์ type ประเภทส่วนประกอบที่แตกต่างกันรองรับพารามิเตอร์ที่แตกต่างกันดังนี้:

    Header Component

    ส่วนหัวเป็นตัวเลือก หากไม่ต้องการส่วนหัว ไม่ต้องตั้งค่าส่วนนี้

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    type String จำเป็น ประเภทส่วนประกอบ ค่าเป็น HEADER
    format String จำเป็น รูปแบบส่วนหัว ค่า: text, image, video, document, สอดคล้องกับข้อความ, รูปภาพ, วิดีโอ, ไฟล์
    text String ตัวเลือก เนื้อหาข้อความส่วนหัว จำเป็นเมื่อ format=text เนื้อหาข้อความส่วนหัวสามารถรวมตัวแปรได้ แต่รองรับเพียงตัวแปรเดียว แสดงด้วย {{1}}
    example JSON Object ตัวเลือก ตัวอย่างส่วนหัว จำเป็นเมื่อข้อความรวมตัวแปรหรือ format เป็นประเภทสื่อ ดูที่ example object description
    Example Object Description
    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    header_handle String Array ตัวเลือก เมื่อ format เป็น image, video, หรือ document ให้ส่ง URL ของสื่อที่เกี่ยวข้องไปยังฟิลด์นี้ URL ต้องสามารถเข้าถึงได้ มิฉะนั้นการตรวจสอบเทมเพลตอาจถูกปฏิเสธ
    ตัวอย่าง: "header_handle": ["https://jiguang.cn/demopic.jpg"]
    header_text String Array ตัวเลือก เมื่อ format เป็น text และรวมตัวแปร ให้ส่งค่าทดแทนของตัวแปรไปยังฟิลด์นี้ ตัวอย่าง: "header_text": ["var1"]
    header_url String Array ตัวเลือก คล้ายกับ header_handle โปรดทราบว่าฟิลด์นี้จะไม่ได้รับการสนับสนุนในเวอร์ชัน WhatsApp ในอนาคต หลีกเลี่ยงการใช้งาน
    ตัวอย่าง: "header_url": ["https://jiguang.cn/demopic.jpg"]
    Body Component

    ส่วนเนื้อหาเป็นสิ่งจำเป็นและต้องรวมเนื้อหา body

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    type String จำเป็น ประเภทส่วนประกอบ ค่าเป็น BODY
    text String จำเป็น เนื้อหา body สูงสุด 1024 ตัวอักษร รองรับตัวแปรหลายตัว ตัวแปรแสดงด้วยวงเล็บปีกกาคู่พร้อมดัชนีตัวแปร เริ่มต้นจาก 1 และเพิ่มขึ้น เช่น {{1}} และ {{2}}
    example JSON Object ตัวเลือก ตัวอย่าง body ผู้ตรวจสอบ Meta จะใช้ตัวอย่างเพื่อพิจารณาความสอดคล้องของข้อความของคุณ ดูที่ example object description จำเป็นเมื่อข้อความรวมตัวแปร
    Example Object Description
    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    body_text String Array ตัวเลือก เมื่อข้อความรวมตัวแปร ให้ส่งค่าทดแทนของ ตัวแปรทั้งหมด ไปยังฟิลด์นี้ตามลำดับดัชนีตัวแปร ตัวอย่าง: "body_text": [["var1","var2","var3"]]

    ส่วนท้ายเป็นตัวเลือก หากไม่ต้องการส่วนท้าย ไม่ต้องตั้งค่าส่วนนี้

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    type String จำเป็น ประเภทส่วนประกอบ ค่าเป็น FOOTER
    text String จำเป็น เนื้อหาส่วนท้าย อนุญาตเฉพาะข้อความธรรมดา ไม่สามารถกำหนดตัวแปรได้
    Buttons Component

    ส่วนปุ่มเป็นตัวเลือก หากไม่ต้องการปุ่ม ไม่ต้องตั้งค่าส่วนนี้

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    type String จำเป็น ประเภทส่วนประกอบ ค่าเป็น BUTTONS
    buttons Object Array จำเป็น ข้อมูลปุ่ม ดูที่ buttons object description.
    Buttons Object Description
    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    type String จำเป็น ประเภทปุ่ม ค่า: QUICK_REPLY, URL, PHONE_NUMBER สอดคล้องกับ: การตอบกลับด่วน, การเรียกดูเว็บไซต์, การโทรหมายเลขโทรศัพท์
    text String จำเป็น ข้อความบนปุ่ม ไม่สามารถรวมตัวแปรได้ ต้องเป็นข้อความธรรมดา สูงสุด 25 ตัวอักษร
    url String ตัวเลือก จำเป็นเมื่อ type=URL ตัวแปรสามารถตั้งค่าได้ที่ส่วนท้ายของ URL และรองรับเพียงตัวแปรเดียว แสดงด้วย {{1}}
    phone_number String ตัวเลือก จำเป็นเมื่อ type=PHONE_NUMBER ไม่สามารถรวมตัวแปรได้ เนื้อหาต้องเป็นหมายเลขโทรศัพท์ที่มีรหัสประเทศ
    example String Array ตัวเลือก จำเป็นเมื่อ type=QUICK_REPLY และ type=URL
    ตัวอย่าง: "example": ["https://www.website.com/dynamic-url-example"]

    หมายเหตุพิเศษสำหรับประเภท Verification Code

    หมายเหตุ

    สำหรับเทมเพลตในหมวด AUTHENTICATION:

    1. อย่าตั้งค่าส่วน HEADER ใน Components.
    2. ข้อความเนื้อหาเทมเพลตจะถูกแปลโดยอัตโนมัติตามฟิลด์ภาษาเทมเพลต.
    3. สำหรับโหมด ONE_TAP ที่เปลี่ยนเส้นทางไปยังแอป ปัจจุบันรองรับเฉพาะแอป Android และ ต้องดำเนินการจับมือที่เกี่ยวข้องในแอปของคุณ สำหรับคำแนะนำการใช้งานโดยละเอียด โปรดอ่าน เอกสารอย่างเป็นทางการ - Authentication Templates.
    4. พารามิเตอร์ที่ส่งเมื่อสร้างเทมเพลตและฟิลด์ที่บันทึกไว้ในฝั่ง WhatsApp หลังจากสร้างสำเร็จไม่สอดคล้องกัน โดยพื้นฐานแล้ว WhatsApp จะเปลี่ยน BODY, FOOTER และ BUTTONS ในหมวดหมู่นี้ของเทมเพลต ดังนั้นโปรดให้ความสำคัญเป็นพิเศษเมื่อต้องส่งข้อความด้วยเทมเพลต โดยจำเป็นต้องเพิ่มตัวแปรปุ่ม (button) โปรดดูรายละเอียดได้จาก เอกสาร API สำหรับการส่งข้อความ
    COPY_CODE Example

    ข้อมูลที่ส่ง:

    { "name": "copycodetmpl", "language": "zh_CN", "category": "AUTHENTICATION", "components": [ { // body เป็นส่วนที่จำเป็น "type": "BODY", "add_security_recommendation": true // ระบุว่าจะเพิ่มคำแนะนำด้านความปลอดภัยหรือไม่ }, { // footer เป็นส่วนที่ไม่จำเป็น "type": "FOOTER", "code_expiration_minutes": 2 // เพิ่มการแสดงเวลาหมดอายุ ช่วง [1,90] ไม่ต้องส่งฟิลด์นี้หากไม่ต้องการเพิ่ม }, { "type": "BUTTONS", "buttons": [ { "type": "OTP", "otp_type": "copy_code", "text": "copy it" // จำกัดความยาวไม่เกิน 25 ตัวอักษร } ] } ] }
                  
                  {
    "name": "copycodetmpl",
    "language": "zh_CN",
    "category": "AUTHENTICATION",
    "components": [
    {
    // body เป็นส่วนที่จำเป็น
    "type": "BODY",
    "add_security_recommendation": true  // ระบุว่าจะเพิ่มคำแนะนำด้านความปลอดภัยหรือไม่
    
        },
        {
            // footer เป็นส่วนที่ไม่จำเป็น
            "type": "FOOTER",		
            "code_expiration_minutes": 2    // เพิ่มการแสดงเวลาหมดอายุ ช่วง [1,90] ไม่ต้องส่งฟิลด์นี้หากไม่ต้องการเพิ่ม
        },
        {
            "type": "BUTTONS",          
            "buttons": [
                {
                    "type": "OTP",
                    "otp_type": "copy_code",
                    "text": "copy it"      // จำกัดความยาวไม่เกิน 25 ตัวอักษร
                }
            ]
        }
    ]
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    เนื้อหาเทมเพลตที่ได้รับจริงในฝั่ง WhatsApp หลังจากสร้าง:

    { "name": "copycodetmpl", "language": "zh_CN", "category": "AUTHENTICATION", "components": [ { "type": "BODY", "text": "{{1}} คือรหัสยืนยันของคุณ เพื่อเหตุผลด้านความปลอดภัย กรุณาอย่าแชร์รหัสนี้", "example": { "body_text": [ ["123456"] ] } }, { "type": "FOOTER", "text": "รหัสยืนยันนี้จะหมดอายุใน 2 นาที" }, { "type": "BUTTONS", "buttons": [{ "type": "URL", "text": "Copy code", "url": "https://www.whatsapp.com/otp/code/?otp_type=COPY_CODE&code=otp{{1}}", "example": [ "https://www.whatsapp.com/otp/code/?otp_type=COPY_CODE&code=otp123456" ] }] } ] }
                  
                  {
    "name": "copycodetmpl",
    "language": "zh_CN",
    "category": "AUTHENTICATION",
    "components": [
    {
    "type": "BODY",
    "text": "{{1}} คือรหัสยืนยันของคุณ เพื่อเหตุผลด้านความปลอดภัย กรุณาอย่าแชร์รหัสนี้",
    "example": {
    "body_text": [
    ["123456"]
    ]
    }
    },
    {
    "type": "FOOTER",
    "text": "รหัสยืนยันนี้จะหมดอายุใน 2 นาที"
    },
    {
    "type": "BUTTONS",
    "buttons": [{
    "type": "URL",
    "text": "Copy code",
    "url": "https://www.whatsapp.com/otp/code/?otp_type=COPY_CODE&code=otp{{1}}",
    "example": [
    "https://www.whatsapp.com/otp/code/?otp_type=COPY_CODE&code=otp123456"
    ]
    }]
    }
    ]
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    ONE_TAP Example

    ข้อมูลที่ส่ง:

    { "name": "copycodetmpl", "language": "zh_CN", "category": "AUTHENTICATION", "components": [ { // body เป็นส่วนที่จำเป็น "type": "BODY", "add_security_recommendation": true // ระบุว่าจะเพิ่มคำแนะนำด้านความปลอดภัยหรือไม่ }, { // footer เป็นส่วนที่ไม่จำเป็น "type": "FOOTER", "code_expiration_minutes": 2 // เพิ่มการแสดงเวลาหมดอายุ ช่วง [1,90] ไม่ต้องส่งฟิลด์นี้หากไม่ต้องการเพิ่ม }, { "type": "BUTTONS", "buttons": [ { "type": "OTP", "otp_type": "one_tap", "text": "auto1", // จำกัดความยาวไม่เกิน 25 ตัวอักษร "autofill_text": "auto1", // จำกัดความยาวไม่เกิน 25 ตัวอักษร "package_name": "ppssd", "signature_hash": "asds" } ] } ] }
                  
                  {
    "name": "copycodetmpl",
    "language": "zh_CN",
    "category": "AUTHENTICATION",
    "components": [
    {
    // body เป็นส่วนที่จำเป็น
    "type": "BODY",
    "add_security_recommendation": true  // ระบุว่าจะเพิ่มคำแนะนำด้านความปลอดภัยหรือไม่
    
        },
        {
            // footer เป็นส่วนที่ไม่จำเป็น
            "type": "FOOTER",		
            "code_expiration_minutes": 2    // เพิ่มการแสดงเวลาหมดอายุ ช่วง [1,90] ไม่ต้องส่งฟิลด์นี้หากไม่ต้องการเพิ่ม
        },
        {
            "type": "BUTTONS",          
            "buttons": [
                {
                    "type": "OTP",
                    "otp_type": "one_tap",
                    "text": "auto1",      // จำกัดความยาวไม่เกิน 25 ตัวอักษร
                    "autofill_text": "auto1",      // จำกัดความยาวไม่เกิน 25 ตัวอักษร
                    "package_name": "ppssd",    
                    "signature_hash": "asds"  
                }
            ]
        }
    ]
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    เนื้อหาเทมเพลตที่ได้รับจริงในฝั่ง WhatsApp หลังจากสร้าง:

    { "name": "copycodetmpl", "language": "zh_CN", "category": "AUTHENTICATION", "components": [ { "type": "BODY", "text": "{{1}} คือรหัสยืนยันของคุณ เพื่อเหตุผลด้านความปลอดภัย กรุณาอย่าแชร์รหัสนี้", "example": { "body_text": [ ["123456"] ] } }, { "type": "FOOTER", "text": "รหัสยืนยันนี้จะหมดอายุใน 2 นาที" }, { "type": "BUTTONS", "buttons": [{ "type": "URL", "text": "copy1", "url": "https://www.whatsapp.com/otp/code/?otp_type=ONE_TAP\u0026cta_display_name=auto1\u0026package_name=ppssd\u0026signature_hash=asds\u0026code=otp{{1}}", "example": ["https://www.whatsapp.com/otp/code/?otp_type=ONE_TAP\u0026cta_display_name=auto1\u0026package_name=ppssd\u0026signature_hash=asds\u0026code=otp123456"] }] } ] }
                  
                  {
    "name": "copycodetmpl",
    "language": "zh_CN",
    "category": "AUTHENTICATION",
    "components": [
    {
    "type": "BODY",
    "text": "{{1}} คือรหัสยืนยันของคุณ เพื่อเหตุผลด้านความปลอดภัย กรุณาอย่าแชร์รหัสนี้",
    "example": {
    "body_text": [
    ["123456"]
    ]
    }
    },
    {
    "type": "FOOTER",
    "text": "รหัสยืนยันนี้จะหมดอายุใน 2 นาที"
    },
    {
    "type": "BUTTONS",
    "buttons": [{
    "type": "URL",
    "text": "copy1",
    "url": "https://www.whatsapp.com/otp/code/?otp_type=ONE_TAP\u0026cta_display_name=auto1\u0026package_name=ppssd\u0026signature_hash=asds\u0026code=otp{{1}}",
    "example": ["https://www.whatsapp.com/otp/code/?otp_type=ONE_TAP\u0026cta_display_name=auto1\u0026package_name=ppssd\u0026signature_hash=asds\u0026code=otp123456"]
    }]
    }
    ]
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

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

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

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    template_id String จำเป็น รหัสเทมเพลต ส่งคืนเมื่อสำเร็จ
    { "template_id": "1275172986566180" // รหัสเทมเพลต }
                  
                  {
    "template_id": "1275172986566180"		// รหัสเทมเพลต
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    การตอบกลับล้มเหลว

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    code int จำเป็น รหัสข้อผิดพลาด ส่งคืนเมื่อเกิดข้อผิดพลาด
    message String จำเป็น ข้อความข้อผิดพลาด ส่งคืนเมื่อเกิดข้อผิดพลาด
    { "code": 5002, "message": "Invalid parameter. code:100:2388042" }
                  
                  {
    "code": 5002,
    "message": "Invalid parameter. code:100:2388042"
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    อัปเดตเทมเพลต

    จุดสิ้นสุด API

    PUT https://wa.api.engagelab.cc/v1/templates/{templateId}

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

    { "components": [{ // เนื้อหาเทมเพลต "type": "BODY", // บล็อกเนื้อหา รองรับ HEADER/BODY/FOOTER/BUTTONS "text": "define var as {{1}}" // ข้อความเฉพาะ ไม่จำเป็นต้องส่งฟิลด์รูปแบบเมื่อ body เป็นข้อความ "example": { "body_text": [["var1"]] } },{ "type": "HEADER", "format": "image", // ประเภทเนื้อหา รองรับ text/image/video/document/location "example": { "header_url": ["https://jiguang.cn/demopic.jpg"] } },{ "type": "FOOTER", "text": "footer only support text without variable" },{ "type": "BUTTONS", "buttons": [{ "type": "PHONE_NUMBER", // ประเภทปุ่ม รองรับ PHONE_NUMBER/URL/QUICK_REPLY "text": "this is a phone number", "phone_number": "8613800138000" }] }] }
                  
                  {
    "components": [{						// เนื้อหาเทมเพลต
    "type": "BODY",					// บล็อกเนื้อหา รองรับ HEADER/BODY/FOOTER/BUTTONS
    "text": "define var as {{1}}" // ข้อความเฉพาะ ไม่จำเป็นต้องส่งฟิลด์รูปแบบเมื่อ body เป็นข้อความ
    "example": {
    "body_text": [["var1"]]
    }
    },{
    "type": "HEADER",
    "format": "image",				// ประเภทเนื้อหา รองรับ text/image/video/document/location
    "example": {
    "header_url": ["https://jiguang.cn/demopic.jpg"]
    }
    },{
    "type": "FOOTER",
    "text": "footer only support text without variable"
    },{
    "type": "BUTTONS",
    "buttons": [{
    
    "type": "PHONE_NUMBER",         	// ประเภทปุ่ม รองรับ PHONE_NUMBER/URL/QUICK_REPLY
    
    "text": "this is a phone number",
    
    "phone_number": "8613800138000"
    }]
    }]
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

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

    เหมือนกับ พารามิเตอร์คำขอ สำหรับการสร้างเทมเพลต

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

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

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    code int จำเป็น รหัสตอบกลับ กำหนดไว้ที่ 0
    message String จำเป็น ข้อความตอบกลับ กำหนดไว้ที่ success
    { "code": 0, "message": "success" }
                  
                  {
    "code": 0,
    "message": "success"
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    การตอบกลับล้มเหลว

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    code int จำเป็น รหัสข้อผิดพลาด ส่งคืนเมื่อเกิดข้อผิดพลาด
    message String จำเป็น ข้อความข้อผิดพลาด ส่งคืนเมื่อเกิดข้อผิดพลาด
    { "code": 5002, "message": "Invalid parameter. code:100:2593002" }
                  
                  {
    "code": 5002,
    "message": "Invalid parameter. code:100:2593002"
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ลบเทมเพลต

    จุดสิ้นสุด API

    DELETE https://wa.api.engagelab.cc/v1/templates/{template_name}
    หมายเหตุ: ชื่อเทมเพลตจะถูกส่งผ่านที่นี่แทนรหัสเทมเพลต และเนื้อหาเทมเพลตทุกภาษาภายใต้ชื่อเทมเพลตนี้จะถูกลบ

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

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

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    code int จำเป็น รหัสตอบกลับ กำหนดไว้ที่ 0
    message String จำเป็น ข้อความตอบกลับ กำหนดไว้ที่ success
    { "code": 0, "message": "success" }
                  
                  {
    "code": 0,
    "message": "success"
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    การตอบกลับล้มเหลว

    พารามิเตอร์ ประเภท ตัวเลือก คำอธิบาย
    code int จำเป็น รหัสข้อผิดพลาด ส่งคืนเมื่อเกิดข้อผิดพลาด
    message String จำเป็น ข้อความข้อผิดพลาด ส่งคืนเมื่อเกิดข้อผิดพลาด
    { "code": 2004, "message": "something error" }
                  
                  {
    "code": 2004,
    "message": "something error"
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    รหัสข้อผิดพลาด

    รหัสข้อผิดพลาด รหัส HTTP คำอธิบาย
    1000 500 ข้อผิดพลาดภายใน
    2001 401 การตรวจสอบ EngageLab ล้มเหลว ไม่ได้ให้โทเค็นที่มีรูปแบบข้อมูลไม่ถูกต้อง
    2002 401 การตรวจสอบ EngageLab ล้มเหลว โทเค็นหมดอายุหรือถูกปิดใช้งาน
    2003 400 การตรวจสอบ WhatsApp ล้มเหลว โปรดติดต่อฝ่ายสนับสนุน EngageLab
    2004 403 ไม่มีสิทธิ์เรียกใช้ API นี้
    3001 400 รูปแบบพารามิเตอร์คำขอไม่ถูกต้อง โปรดตรวจสอบว่าใช้รูปแบบ JSON หรือไม่
    3002 400 พารามิเตอร์คำขอไม่ถูกต้อง โปรดตรวจสอบว่าตรงตามข้อกำหนดหรือไม่
    3003 400 พารามิเตอร์คำขอไม่ถูกต้อง การตรวจสอบธุรกิจที่เกี่ยวข้องล้มเหลว
    4001 400 เทมเพลตไม่มีอยู่จริง
    5002 400 คำขอเทมเพลตล้มเหลวในระหว่างการประมวลผล Meta โปรดดูคำอธิบายข้อผิดพลาดในฟิลด์ข้อความสำหรับรายละเอียด

    หมายเหตุ

    ข้อกำหนดรูปแบบข้อความสื่อ

    ประเภทสื่อ ประเภทเนื้อหาที่รองรับ Content-Type ขีดจำกัดขนาด
    image image/jpeg, image/png, ไม่รองรับพื้นหลังโปร่งใส 5 MB
    video video/mp4 16MB
    document รองรับเฉพาะรูปแบบ PDF 100 MB

    รหัสภาษา

    ภาษา รหัส
    Afrikaans af
    Albanian sq
    Arabic ar
    Azerbaijani az
    Bengali bn
    Bulgarian bg
    Catalan ca
    Chinese (Mainland) zh_CN
    Chinese (Hong Kong) zh_HK
    Chinese (Taiwan) zh_TW
    Croatian hr
    Czech cs
    Danish da
    Dutch nl
    English en
    English (UK) en_GB
    English (US) en_US
    Estonian et
    Filipino fil
    Finnish fi
    French fr
    Georgian ka
    German de
    Greek el
    Gujarati gu
    Hausa ha
    Hebrew he
    Hindi hi
    Hungarian hu
    Indonesian id
    Irish ga
    Italian it
    Japanese ja
    Kannada kn
    Kazakh kk
    Kinyarwanda rw_RW
    Korean ko
    Kyrgyzstan ky_KG
    Lao lo
    Latvian lv
    Lithuanian lt
    Macedonian mk
    Malay ms
    Malayalam ml
    Marathi mr
    Norwegian nb
    Persian fa
    Polish pl
    Portuguese (Brazil) pt_BR
    Portuguese (Portugal) pt_PT
    Punjabi pa
    Romanian ro
    Russian ru
    Serbian sr
    Slovak sk
    Slovenian sl
    Spanish es
    Spanish (Argentina) es_AR
    Spanish (Spain) es_ES
    Spanish (Mexico) es_MX
    Swahili sw
    Swedish sv
    Tamil ta
    Telugu te
    Thai th
    Turkish tr
    Ukrainian uk
    Urdu ur
    Uzbek uz
    Vietnamese vi
    Zulu zu

    ความสัมพันธ์ระหว่างภาษาและรหัสสามารถดาวน์โหลดได้ในไฟล์นี้:
    Template Language Codes.xlsx

    icon
    ติดต่อฝ่ายขาย