Push API v4

  • ส่งการแจ้งเตือนหรือข้อความไปยังอุปกรณ์เดียวหรือรายการอุปกรณ์

  • เนื้อหาการ push จะต้องเป็นออบเจ็กต์ JSON เพียงหนึ่งเดียวเท่านั้น

  • สำหรับฟังก์ชันที่เกี่ยวข้องกับป้ายกำกับ/นามแฝง โปรดดูที่ AppPushAPI

นี่คือเวอร์ชันล่าสุดของ Push API การปรับปรุงในเวอร์ชัน v4 มีดังนี้:

  • ใช้การรับรองความถูกต้องแบบ HTTP Basic เพื่ออนุญาตการเข้าถึง ด้วยวิธีนี้ การร้องขอ API ทั้งหมดสามารถทำได้โดยใช้เครื่องมือ HTTP ทั่วไป เช่น curl และปลั๊กอินเบราว์เซอร์
  • เนื้อหาการ push เป็นรูปแบบ JSON

ข้อจำกัดอัตราการร้องขอ

API ของเรามีข้อจำกัดเกี่ยวกับความถี่ในการเรียกใช้ เพื่อให้มั่นใจในความเสถียรและความเป็นธรรมของบริการ ข้อจำกัด QPS (Queries Per Second) สำหรับแต่ละ AppKey มีดังนี้:

  • ข้อจำกัดมาตรฐาน: สูงสุด 500 คำขอต่อวินาที
  • ข้อจำกัดขั้นสูง: หากคุณเป็นสมาชิกแผนแบบชำระเงินและ AppKey ที่ชำระเงินของคุณต้องการข้อจำกัด QPS ที่สูงกว่า โปรดติดต่อทีมธุรกิจของเรา: Sales@engagelab.com

การตรวจสอบการเรียกใช้

สำหรับข้อมูลเพิ่มเติม โปรดดูที่ /th_TH/docs/web-push/rest-api/rest-api-overview#authentication-method

ที่อยู่การเรียกใช้

POST v4/push
              
              POST v4/push

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

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

ส่วนหัวคำขอ

> POST /v4/push HTTP/1.1 > Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
              
              > POST /v4/push HTTP/1.1
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==

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

เนื้อหาคำขอ

{ "from": "push", "to": "all", "body": { "platform": "web", "notification": { "alert": "Hi,MTPush !", "web": { "alert": "web_push", "title": "web_push", "url": "http://www.google.com", "extras": { "web-key1": "web-value1" } } } }, "request_id": "12345678", "custom_args": { "business": "info" } }
              
              {
    "from": "push",
    "to": "all",
    "body": {
        "platform": "web",
        "notification": {
            "alert": "Hi,MTPush !",
            "web": {
                "alert": "web_push",
                "title": "web_push",
                "url": "http://www.google.com",
                "extras": {
                    "web-key1": "web-value1"
                }
            }
        }
    },
    "request_id": "12345678",
    "custom_args": {
        "business": "info"
    }
}

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

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

โครงสร้างพารามิเตอร์ของการ push มีรายละเอียดดังตารางด้านล่าง

คีย์เวิร์ด ประเภท ตัวเลือก คำอธิบาย
from String ไม่จำเป็น ผู้ส่งธุรกิจปัจจุบัน
to String หรือ JSON Object จำเป็น เป้าหมายการส่ง
body JSON Object จำเป็น เนื้อหาคำขอการส่ง
platform String หรือ JSON Array จำเป็น แพลตฟอร์มการ push
notification JSON Object ไม่จำเป็น
  • เนื้อหาการแจ้งเตือน ซึ่งเป็นเนื้อหาที่ถูก push ไปยังไคลเอนต์
  • ต้องมีอย่างใดอย่างหนึ่งร่วมกับ message และไม่สามารถใช้งานร่วมกันได้
  • message JSON Object ไม่จำเป็น
  • เนื้อหาข้อความ ซึ่งเป็นเนื้อหาที่ถูก push ไปยังไคลเอนต์
  • ต้องมีอย่างใดอย่างหนึ่งร่วมกับ notification และไม่สามารถใช้งานร่วมกันได้
  • options JSON Object ไม่จำเป็น พารามิเตอร์การ push
    request_id String ไม่จำเป็น ฟิลด์ที่กำหนดเองโดยผู้ใช้ เพื่อระบุคำขอและจะถูกส่งกลับเมื่อมีการตอบกลับ
    custom_args JSON Object ไม่จำเป็น ฟิลด์ที่กำหนดเองโดยผู้ใช้ ซึ่งจะถูกส่งกลับไปยังผู้ใช้เมื่อมีการเรียกกลับ

    from

    ผู้ส่งของธุรกิจปัจจุบัน ค่าเป็นประเภท String และไม่จำเป็น

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

    { "from":"push" }
                  
                  {
        "from":"push"
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    to

    ออบเจ็กต์อุปกรณ์ push ซึ่งระบุรายการอุปกรณ์ที่สามารถ push ได้ ยืนยันออบเจ็กต์อุปกรณ์ push MTPush มีสองวิธี: Registration ID และการกระจายเสียง

    เป้าหมายการ push

    คีย์เวิร์ด ประเภท ความหมาย คำอธิบาย หมายเหตุ
    all String การกระจายเสียง Push ไปยังอุปกรณ์ทั้งหมด Push ไปยังอุปกรณ์เป้าหมายที่ใช้งานภายใน 30 วันที่ผ่านมา
    registration_id JSON Array Registration ID อาร์เรย์ ความสัมพันธ์ระหว่าง registration ID หลายรายการคือ OR หรือการรวม รหัสอุปกรณ์ สามารถ push ได้สูงสุด 1,000 ข้อความต่อครั้ง
    tag JSON Array ป้ายกำกับ อาร์เรย์ ความสัมพันธ์ระหว่างป้ายกำกับหลายรายการคือ OR หรือการรวม ใช้ป้ายกำกับเพื่อจัดกลุ่มอุปกรณ์ตามคุณลักษณะขนาดใหญ่หรือกลุ่มย่อยของผู้ใช้
  • Push ได้สูงสุด 20 รายการต่อครั้ง
  • องค์ประกอบของป้ายกำกับที่ถูกต้อง: ตัวอักษร (คำนึงถึงตัวพิมพ์ใหญ่เล็ก), ตัวเลข, ขีดล่าง, อักษรจีน
  • ข้อจำกัด: ความยาวของแต่ละป้ายกำกับจำกัดที่ 40 ไบต์ (ต้องใช้การเข้ารหัส UTF-8 เพื่อกำหนดความยาว)
  • tag_and JSON Array ป้ายกำกับ AND อาร์เรย์ ป้ายกำกับหลายรายการมีความสัมพันธ์แบบ AND หรือการตัดกัน โปรดสังเกตความแตกต่างกับป้ายกำกับ สูงสุด 20 รายการต่อครั้ง
    tag_not JSON Array ป้ายกำกับ NOT อาร์เรย์ ระหว่างป้ายกำกับหลายรายการ จะนำเซตที่รวมกันของป้ายกำกับหลายรายการก่อน แล้วจึงนำส่วนเสริมของผลลัพธ์นั้น Push ได้สูงสุด 20 รายการต่อครั้ง
    alias JSON Array นามแฝง อาร์เรย์ นามแฝงหลายรายการมีความสัมพันธ์แบบ OR หรือการรวม ระบุผู้ใช้ด้วยนามแฝง
  • อุปกรณ์หนึ่งสามารถผูกกับนามแฝงได้เพียงหนึ่งรายการ แต่หลายอุปกรณ์สามารถผูกกับนามแฝงเดียวกันได้
  • Push ได้สูงสุด 1000 รายการต่อครั้ง
  • องค์ประกอบของนามแฝงที่ถูกต้อง: ตัวอักษร (คำนึงถึงตัวพิมพ์ใหญ่เล็ก), ตัวเลข, ขีดล่าง, อักษรจีน
  • ข้อจำกัด: ความยาวของแต่ละนามแฝงจำกัดที่ 40 ไบต์ (ต้องใช้การเข้ารหัส UTF-8 เพื่อกำหนดความยาว)

  • ความสัมพันธ์โดยนัยระหว่างหลายค่าในอาร์เรย์คือ OR หรือการรวม อย่างไรก็ตาม tag_and จะแตกต่างกันตรงที่ความสัมพันธ์ระหว่างหลายค่าในอาร์เรย์คือ AND หรือการตัดกัน

    หากใช้ tag_not เพียงอย่างเดียว เราจะดำเนินการประมวลผล tag_not ในกลุ่มผู้ใช้ที่ได้รับการกระจายข้อมูล

    ประเภทเหล่านี้สามารถอยู่ร่วมกันได้ ความสัมพันธ์โดยนัยระหว่างหลายพหุนามเมื่ออยู่ร่วมกันคือ AND หรือการตัดกัน ตัวอย่างเช่น:

    "to" : {"tag" : [ "tag1", "tag2"], "tag_and" : ["tag3", "tag4"], "tag_not" : ["tag5", "tag6"] }

    คำนวณผลลัพธ์ของฟิลด์ "tag" ก่อน tag1 or tag2 = A;

    จากนั้นคำนวณผลลัพธ์ของฟิลด์ "tag_and" tag3 and tag4 = B;

    จากนั้นคำนวณผลลัพธ์ของฟิลด์ "tag_not" not (tag5 or tag6) = C;

    ผลลัพธ์สุดท้ายของ "to" คือ A and B and C


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

    • Push ไปยังทั้งหมด (การกระจายเสียง):
    { "to": "all", }
                  
                  {
      "to": "all",
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    • Push ไปยัง registration ID หลายรายการ:
    { "to": { "registration_id": [ "4312kjklfds2", "8914afd2", "45fdsa31" ] } }
                  
                  {
      "to": {
        "registration_id": [
          "4312kjklfds2",
          "8914afd2",
          "45fdsa31"
        ]
      }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    body

    เนื้อหาของคำขอ ฟิลด์ที่รองรับมีดังนี้:

    คีย์เวิร์ด ประเภท ตัวเลือก คำอธิบาย
    platform String หรือ JSON Array จำเป็น แพลตฟอร์มการ push
    notification JSON Object ไม่จำเป็น
  • เนื้อหาการแจ้งเตือน ซึ่งเป็นเนื้อหาที่ถูก push ไปยังไคลเอนต์
  • ต้องมีอย่างใดอย่างหนึ่งร่วมกับ message และไม่สามารถใช้งานร่วมกันได้
  • message JSON Object ไม่จำเป็น
  • เนื้อหาข้อความ ซึ่งเป็นเนื้อหาที่ถูก push ไปยังไคลเอนต์
  • ต้องมีอย่างใดอย่างหนึ่งร่วมกับ notification และไม่สามารถใช้งานร่วมกันได้
  • options JSON Object ไม่จำเป็น พารามิเตอร์การ push

    platform

    MTPush ปัจจุบันรองรับเฉพาะการ push บนแพลตฟอร์ม Web ดังนั้นคีย์เวิร์ดที่ระบุโดย platform คือ "web"

    { "platform" : "web" }
                  
                  { "platform" : "web" }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    notification

    ออบเจ็กต์การแจ้งเตือนเป็นหนึ่งในออบเจ็กต์เนื้อหาหลักที่ถูก push (อีกอันคือข้อความ) และถูก push ไปยังเว็บเป็นการแจ้งเตือน

    คีย์เวิร์ด ประเภท ตัวเลือก ความหมาย คำอธิบาย
    web JSON Object จำเป็น คุณสมบัติแพลตฟอร์ม พารามิเตอร์การ push ของแพลตฟอร์ม ดู #web

    web

    การแจ้งเตือนบนแพลตฟอร์ม Web

    คีย์เวิร์ด ประเภท ตัวเลือก ความหมาย คำอธิบาย
    alert String หรือ JSON Object จำเป็น เนื้อหา เนื้อหาข้อความเอง ซึ่งระบุที่นี่ จะแทนที่ข้อมูลการแจ้งเตือนที่ระบุโดยระดับสูงกว่า
    url String ไม่จำเป็น web push url ที่อยู่สำหรับเปิดเมื่อคลิกการแจ้งเตือน หากระบุ ต้องเป็น URL ที่ถูกต้อง
    title String ไม่จำเป็น หัวข้อ หัวข้อข้อความ
    Extras JSON Object ไม่จำเป็น ฟิลด์ส่วนขยาย ที่นี่คุณสามารถกำหนดข้อมูล Key / Value ในรูปแบบ JSON สำหรับการใช้งานทางธุรกิจ
    icon String ไม่จำเป็น ไอคอนการแจ้งเตือน ขนาดแนะนำ 192*192px ไม่มีข้อจำกัดบังคับ; ขนาดสูงสุดที่อนุญาต 1M รูปแบบที่รองรับ: JPG, PNG, GIF รองรับ Chrome, Firefox (Safari และ Edge ระบบไม่สามารถกำหนดเองได้โดยค่าเริ่มต้น)
    image String ไม่จำเป็น ภาพขนาดใหญ่สำหรับการแจ้งเตือน ขนาดแนะนำ 360*180px ไม่มีข้อจำกัดบังคับ; ขนาดสูงสุดที่อนุญาต 1M รูปแบบที่รองรับ: JPG, PNG, GIF รองรับ Chrome, Edge (ไม่รองรับ Firefox และ Safari)
    { "notification": { "web": { "alert": "hello, Push!", "title": "Push Test", "url":"http://www.google.com", "icon":"", "image":"", "extras": { "news_id": 134, "my_key": "a value" } } } }
                  
                  {
        "notification": {
            "web": {
                "alert": "hello, Push!",
                "title": "Push Test",
                "url":"http://www.google.com",
                "icon":"",
                "image":"",
                "extras": {
                    "news_id": 134,
                    "my_key": "a value"
                }
            }
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    message

    ข้อความในแอป หรือข้อความกำหนดเอง ส่วนนี้จะไม่แสดงบนเบราว์เซอร์ หลังจากรับข้อความแล้ว SDK จะส่งต่อไปยังเว็บ และเว็บจะประมวลผลลอจิกธุรกิจ

    ข้อความประกอบด้วยฟิลด์ต่อไปนี้:

    คีย์เวิร์ด ประเภท ตัวเลือก คำอธิบาย
    msg_content String หรือ JSON Object จำเป็น เนื้อหาข้อความ
    title String ไม่จำเป็น หัวข้อข้อความ
    content_type String ไม่จำเป็น ประเภทเนื้อหาข้อความ
    Extras JSON Object ไม่จำเป็น พารามิเตอร์เพิ่มเติมในรูปแบบ JSON

    ตัวอย่าง:

    { "message": { "msg_content": "Hi,Push", "content_type": "text", "title": "msg", "extras": { "key": "value" } } }
                  
                  {
      "message": {
        "msg_content": "Hi,Push",
        "content_type": "text",
        "title": "msg",
        "extras": {
          "key": "value"
        }
      }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    options

    ตัวเลือกการ push ตัวเลือกที่มีดังนี้:

    คีย์เวิร์ด ประเภท ตัวเลือก ความหมาย คำอธิบาย
    time_to_live Int หรือ String ไม่บังคับ ระยะเวลาการเก็บข้อความออฟไลน์ (วินาที)
  • หากผู้ใช้ออฟไลน์ในระหว่างการพุช ข้อความออฟไลน์สามารถเก็บไว้ในระยะเวลาที่กำหนดเพื่อให้สามารถพุชอีกครั้งเมื่อผู้ใช้ออนไลน์
  • ค่าเริ่มต้นคือ 86400 (1 วัน) ค่าสูงสุดคือ 15 วัน หากค่าที่ระบบเบราว์เซอร์รองรับน้อยกว่าค่าที่ส่งผ่าน ค่าสูงสุดของระบบจะถูกนำมาใช้
  • การตั้งค่าเป็น 0 หมายความว่าจะไม่เก็บข้อความออฟไลน์ และจะพุชเฉพาะผู้ใช้ที่ออนไลน์ในขณะนั้นเท่านั้น
  • override_msg_id Long ไม่บังคับ รหัสข้อความที่ต้องการแทนที่ หากการพุชปัจจุบันต้องการแทนที่การพุชก่อนหน้า ให้กรอก msg_id ของการพุชก่อนหน้าเพื่อให้เกิดผลการแทนที่ เช่น:
  • ข้อความออฟไลน์ที่ได้รับสำหรับ msg_id นี้จะเป็นเนื้อหาที่ถูกแทนที่ แม้ว่าผู้ใช้จะได้รับ msg_id บนเว็บแล้ว หากแถบการแจ้งเตือนไม่ถูกล้าง เนื้อหาใหม่จะมาแทนที่การแจ้งเตือนก่อนหน้า
  • ฟังก์ชันการแทนที่มีผลภายในระยะเวลา 1 วัน หาก msg_id ที่ระบุไม่มีอยู่ในระยะเวลาการแทนที่ จะส่งคืนข้อผิดพลาด 1003 ซึ่งแสดงว่าไม่ใช่การดำเนินการแทนข้อความที่ถูกต้อง และข้อความปัจจุบันจะไม่ถูกพุช
  • big_push_duration Int ไม่บังคับ ระยะเวลาการพุชแบบช้า (นาที)
  • เรียกอีกชื่อหนึ่งว่าการพุชแบบช้า ซึ่งลดความเร็วการพุชจากเร็วที่สุดเท่าที่จะเป็นไปได้ โดยกระจายการพุชไปยังผู้ใช้เป้าหมายอย่างสม่ำเสมอในช่วง n นาทีที่กำหนด; ค่าสูงสุดคือ 1440
  • สามารถมีการพุชแบบช้าสูงสุด 20 รายการพร้อมกัน
  • หากไม่ได้ตั้งค่า จะไม่ใช่การพุชแบบช้า
  • web_buttons JSON Object ไม่บังคับ เพิ่มปุ่มในข้อความการแจ้งเตือน
  • สามารถเพิ่มปุ่มได้สูงสุด 2 ปุ่ม
  • สามารถตั้งชื่อปุ่มและลิงก์เปลี่ยนเส้นทางได้ สำหรับรายละเอียด ดู web_buttons
  • multi_language JSON Object ไม่บังคับ การตั้งค่าการพุชหลายภาษา การตั้งค่าการปรับให้เข้ากับหลายภาษาสำหรับเนื้อหาการพุช สำหรับรายละเอียด ดูคำอธิบาย multi_language
    third_party_channel JSON Object ไม่บังคับ ข้อมูลการกำหนดค่าช่องทางระบบเว็บ พารามิเตอร์ที่ใช้ได้เฉพาะสำหรับผู้ใช้ที่กำหนดค่าช่องทางระบบ สำหรับรายละเอียด ดูคำอธิบาย third_party_channel
    plan_id String ไม่บังคับ ตัวระบุแผนการพุช ต้องสร้างค่าตัวระบุแผนก่อน ซึ่งสามารถสร้างได้ในคอนโซลหรือผ่าน API
    cid String ไม่บังคับ ตัวระบุคำขอพุชเพื่อป้องกันการพุชซ้ำ อนุญาตเฉพาะตัวอักษร ตัวเลข ขีดล่าง และขีดกลาง โดยมีความยาวสูงสุด 64 อักขระ โปรดทราบว่าฟิลด์นี้ต้องไม่ซ้ำกันภายใต้ AppKey เดียวกัน

    multi_language

    ฟิลด์นี้คือฟังก์ชันการ push หลายภาษาของบริการ EngageLab Push ช่วยให้คุณสามารถ push เนื้อหาการแจ้งเตือนที่กำหนดเองไปยังผู้ใช้ในภาษาต่างๆ โดยการระบุหลายภาษาและเนื้อหาข้อความ หัวข้อ และหัวข้อย่อยของ iOS ที่เกี่ยวข้องในคำขอ push คุณสามารถส่งการแจ้งเตือน push ที่เหมาะสมตามการตั้งค่าภาษาของผู้ใช้

    พารามิเตอร์คำขอ
    คีย์เวิร์ด ประเภท ตัวเลือก ความหมาย คำอธิบาย
    en string ไม่จำเป็น คีย์หลายภาษา สอดคล้องกับภาษาของผู้ใช้ ดูรหัสคีย์ในภาคผนวก
    content string ไม่จำเป็น เนื้อหาข้อความ แทนที่ข้อมูลใน notification.web.alert, message.msg_content ตามภาษาของผู้ใช้
    title string ไม่จำเป็น หัวข้อข้อความ แทนที่ข้อมูลใน notification.web.title, message.title ตามภาษาของผู้ใช้
    ตัวอย่างคำขอ
    HTTP request method: Post Request URL: /v4/push POST data format: json POST data example: { "options": { "multi_language": { "en": { "content": "", "title": "", } } } }
                  
                     HTTP request method: Post
       Request URL: /v4/push
       POST data format: json
       POST data example:
       {
        "options": {
          "multi_language": {
            "en": {
              "content": "",
              "title": "",
            }
          }
        }
       }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    ตัวอย่างการตอบกลับ
    เมื่อสำเร็จ: { } เมื่อล้มเหลว: { "code":400, "data":"", "message":"Error information" }
                  
                  เมื่อสำเร็จ:
    {
       
    }
    
    เมื่อล้มเหลว:
    {   
        "code":400,  
        "data":"",
      "message":"Error information"
    }   
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    web_buttons

    ใช้พารามิเตอร์ web_buttons เพื่ออธิบาย id, ข้อความ, ไอคอน และ url ของปุ่ม คำอธิบายพารามิเตอร์มีดังนี้:

    คำสำคัญ ประเภท ตัวเลือก ความหมาย คำอธิบาย
    id String จำเป็น button id รองรับตั้งแต่ Chrome 48+
    text String จำเป็น เนื้อหา button รองรับตั้งแต่ Chrome 48+
    icon String ไม่จำเป็น icon ของ button รองรับตั้งแต่ Chrome 50+
    url String จำเป็น ลิงก์ปลายทางของ button รองรับตั้งแต่ Chrome 48+ หากใช้ web_buttons ฟิลด์ url ใน web จะไม่มีผล

    ตัวอย่างการเรียกใช้งานมีดังนี้:

    [ { "id": "like-button", "text": "Like", "icon": "http://i.imgur.com/N8SN8ZS.png", "url": "https://yoursite.com" }, { "id": "read-more-button", "text": "Read more", "icon": "http://i.imgur.com/MIxJp1L.png", "url": "https://yoursite.com" } ]
                  
                  [
      {
        "id": "like-button",
        "text": "Like",
        "icon": "http://i.imgur.com/N8SN8ZS.png",
        "url": "https://yoursite.com"
      },
      {
        "id": "read-more-button",
        "text": "Read more",
        "icon": "http://i.imgur.com/MIxJp1L.png",
        "url": "https://yoursite.com"
      }
    ]
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    third_party_channel

    ฟิลด์นี้ใช้เพื่อกรอกข้อมูลส่วนบุคคลของช่องทางระบบเว็บ ชื่อคีย์คือ w3push และค่าคือ Json Object Object Object ประกอบด้วยฟิลด์การกระจายเพียงหนึ่งฟิลด์ที่ไม่จำเป็นของประเภท String

    คีย์เวิร์ด ประเภท ตัวเลือก ความหมาย คำอธิบาย
    distribution จำเป็น String เมื่อ Engagelab และช่องทางระบบอยู่ร่วมกัน ตั้งค่าลำดับความสำคัญของการส่ง ค่าจะต้องไม่เป็นสตริงว่าง ค่าเริ่มต้นคือ first_ospush
  • first_ospush: หมายถึงการส่ง push ผ่านช่องทางระบบก่อน แต่ไม่ส่ง push ผ่านช่องทาง Engagelab
  • mtpush: หมายถึงการบังคับส่ง push ผ่านช่องทาง Engagelab
  • secondary_push: หมายถึงการส่ง push โดยใช้ Engagelab ก่อน และหาก Engagelab ไม่ออนไลน์จะใช้ช่องทางระบบ ช่องทางระบบใช้เป็นวิธีการเสริม (แนะนำวิธีนี้)
  • ospush:หมายถึงการบังคับส่ง push ผ่านช่องทางระบบเท่านั้น
  • ตัวอย่าง:

    { "third_party_channel":{ "w3push":{ "distribution":"mtpush" } } }
                  
                  {
      "third_party_channel":{
        "w3push":{
          "distribution":"mtpush"
        }
      }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    request_id

    รหัสของคำขอ ลูกค้าระบุคำขอและส่งกลับการตอบสนอง

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

    { "request_id":"12345678" }
                  
                  {
          "request_id":"12345678"
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

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

    custom_args

    ฟิลด์ที่กำหนดเองโดยผู้ใช้ซึ่งไม่จำเป็น จะไม่ถูกส่งกลับเมื่อมีการตอบสนอง แต่จะถูกส่งกลับเมื่อมีการเรียกกลับ

    { "custom_args": { "business": "info" } }
                  
                  {
      "custom_args": {
            "business": "info"
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

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

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

    ฟิลด์ ประเภท ตัวเลือก คำอธิบาย
    request_id String จำเป็น คุณสมบัติในส่วนตอบกลับมีอยู่เสมอ รหัสที่กำหนดเองที่ส่งในคำขอจะถูกส่งกลับตามเดิม หากไม่ได้กรอกในคำขอ มักเป็นสตริงว่าง
    msg_id String จำเป็น รหัสข้อความเพื่อระบุข้อความเฉพาะ
    < HTTP/1.1 200 OK < Content-Type: application/json {"request_id": "18", "msg_id": "1828256757"}
                  
                  < HTTP/1.1 200 OK
    < Content-Type: application/json
    {"request_id": "18", "msg_id": "1828256757"}
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

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

    รหัสสถานะ HTTP เป็น 4xx หรือ 5xx และเนื้อหาการตอบกลับประกอบด้วยฟิลด์ต่อไปนี้

    ฟิลด์ ประเภท ตัวเลือก คำอธิบาย
    code int จำเป็น รหัสข้อผิดพลาด สำหรับข้อมูลเพิ่มเติม โปรดดู #return-codedescription
    message String จำเป็น รายละเอียดข้อผิดพลาด
    { "code": 3002, "message": "Push.template field must be set correctly when type is template" }
                  
                  {
        "code": 3002,
        "message": "Push.template field must be set correctly when type is template"
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    การตอบกลับ

    รหัสสถานะ HTTP

    อ้างอิง:/th_TH/docs/web-push/rest-api/http-status-code

    รหัสการส่งกลับ

    รหัส คำอธิบาย คำอธิบายโดยละเอียด รหัสสถานะ HTTP
    20101 พารามิเตอร์การส่งพุชไม่ถูกต้อง Registration ID ไม่ถูกต้องหรือไม่เป็นของ appkey ปัจจุบัน 400
    21001 รองรับเฉพาะวิธี HTTP Post ไม่รองรับวิธี Get 405
    21002 พารามิเตอร์ที่จำเป็นหายไป ต้องแก้ไข 400
    21003 ค่าพารามิเตอร์ไม่ถูกต้อง ต้องแก้ไข 400
    21004 การตรวจสอบล้มเหลว ต้องแก้ไข, ดู: การเรียกสำหรับการตรวจสอบ 401
    21005 เนื้อหาข้อความใหญ่เกินไป ต้องแก้ไข, ข้อจำกัดความยาว Notification คือ 4000 ไบต์ 400
    21007 พารามิเตอร์อินพุตไม่ถูกต้อง พารามิเตอร์ receiver_value ไม่ถูกต้อง 400
    21008 พารามิเตอร์ app_key ไม่ถูกต้อง ต้องแก้ไข โปรดตรวจสอบว่า appkey ที่ส่งเป็นสตริง 24 อักขระหรือไม่ และมีช่องว่างเพิ่มเติมหรือไม่ 400
    21009 ข้อผิดพลาดระบบภายใน โปรดติดต่อทีมสนับสนุน 400
    21011 ไม่พบเป้าหมายการส่งพุชที่เหมาะสม ตรวจสอบฟิลด์ 'to' 400
    21015 การตรวจสอบพารามิเตอร์คำขอล้มเหลว มีพารามิเตอร์ที่ไม่คาดคิด 400
    21016 การตรวจสอบพารามิเตอร์คำขอล้มเหลว ประเภทพารามิเตอร์ผิด หรือความยาวพารามิเตอร์เกินขีดจำกัด 400
    21030 การหมดเวลาบริการภายใน ลองใหม่ภายหลัง 503
    21036 ข้อผิดพลาดพารามิเตอร์ ไม่สามารถส่งข้อความการแจ้งเตือนและข้อความที่กำหนดเองพร้อมกันได้ 400
    21037 group_key ไม่ถูกต้อง group_key ไม่ใช่สตริง 24 ตัวอักษร หรือไม่มีกลุ่มแอปที่เกี่ยวข้อง 400
    21038 ข้อผิดพลาดสิทธิ์การส่งพุช VIP หมดอายุหรือไม่ได้เปิดใช้งาน 400
    21039 ข้อผิดพลาดพารามิเตอร์ Web Button id, url หรือ text ของ Web Button ว่างเปล่า 400
    21040 จำนวน Web Button เกินขีดจำกัด จำนวน Web Button ต้องไม่เกิน 2 ปุ่ม 400
    21041 URL ของ Web Button ไม่ถูกต้อง รูปแบบ url ของ Web Button ไม่ถูกต้อง 400
    21042 ID ของ Web Button ซ้ำ id ของ Web Button ในคำขอเดียวกันต้องไม่ซ้ำกัน 400
    21043 ข้อผิดพลาดสิทธิ์การส่งพุช แอปมีบิลค้างชำระ 400
    21061 การตรวจสอบเนื้อหาหรือการตั้งค่า callback ล้มเหลว เนื้อหาพุชมีคำที่อ่อนไหว หรือ callback_url ที่ร้องขอไม่ได้ถูกตั้งค่าในที่อยู่ callback ของแอปปัจจุบัน 400
    21062 จำนวนเป้าหมายพุชในไฟล์เกินขีดจำกัด จำนวนเป้าหมายพุชในไฟล์เกินโควตาของแอปหรือขีดจำกัดของระบบ 400
    23006 ข้อผิดพลาดพารามิเตอร์ Fixed-rate push big_push_duration เกินค่าขั้นสูงสุด 1440 400
    23008 อินเทอร์เฟซถูกจำกัดอัตรา การส่งพุชอินเทอร์เฟซแอปพลิเคชันเดียวถึงขีดจำกัด (500 qps) 400
    23009 ข้อผิดพลาดสิทธิ์การส่งพุช ที่อยู่ IP การส่งพุชปัจจุบันไม่อยู่ในรายการที่อยู่ IP ของแอปพลิเคชัน 400
    27000 ข้อผิดพลาดหน่วยความจำภายใน โปรดลองใหม่ 500
    27001 ข้อมูลการยืนยันตัวตนไม่ถูกต้อง AppKey ใน Basic Auth มีความยาว 24 อักขระแต่แอปพลิเคชันไม่มีอยู่ หรือข้อมูลการยืนยันตัวตนของแอปพลิเคชันไม่ถูกต้อง 401
    27006 override_msg_id ไม่มีอยู่ ไม่พบบันทึกพุชที่ตรงกับ override_msg_id 400
    27007 รูปแบบ override_msg_id ไม่ถูกต้อง override_msg_id เป็นค่าลบหรือรูปแบบไม่ถูกต้อง 400
    27008 ข้อผิดพลาดพารามิเตอร์ การกระจายภายใน third_party_channel ไม่ว่างเปล่า แต่เนื้อหาการแจ้งเตือนของ notification ว่างเปล่า 400
    27009 ข้อผิดพลาดพารามิเตอร์ รูปแบบการกระจายใน third_party_channel ไม่ถูกต้องหรือว่างเปล่า 400
    27104 ไม่มี Segment ID ไม่มี segment ID กรุณาสร้างหรือแก้ไขกลุ่มก่อน 400
    27200 msg_id ไม่ถูกต้อง รูปแบบ msg_id ไม่ถูกต้อง 400
    27201 msg_id ไม่มีอยู่หรือไม่เป็นของแอป msg_id ไม่มีอยู่ หรือไม่เป็นของ appkey ปัจจุบัน 400
    27202 ข้อความถูกถอนแล้ว ข้อความที่ตรงกับ msg_id ถูกถอนไปแล้ว 400
    27203 ข้อผิดพลาดของระบบ ข้อผิดพลาดของระบบ กรุณาลองใหม่ 400
    27204 เกินเวลาที่อนุญาตให้ถอนข้อความ ข้อความเกินเวลาที่อนุญาตให้ถอน 400
    27300 ID แผนพุชไม่ถูกต้อง รูปแบบ plan_id ไม่ถูกต้อง 400
    27301 คำอธิบายแผนพุชไม่ถูกต้อง ความยาว plan_description เกินขีดจำกัด 400
    27302 จำนวนแผนพุชเกินขีดจำกัด จำนวนแผนพุชที่ใช้ได้ถึงขีดจำกัดแล้ว 400
    27303 ID แผนพุชว่างเปล่า plan_id ต้องไม่ว่างเปล่า 400
    27304 ID แผนพุชยาวเกินไป ความยาว plan_id เกินขีดจำกัด 400
    27305 ไม่มีแผนพุช ไม่มี plan_id ที่ส่งมาภายใต้ appkey ปัจจุบัน 400
    27306 จำนวน ID แผนพุชเกินขีดจำกัด จำนวน plan_id เกินขีดจำกัด 400
    28100 พารามิเตอร์งานตามกำหนดเวลาไม่ถูกต้อง พารามิเตอร์ schedule task ไม่ถูกต้อง 400
    28101 การยืนยันตัวตนของงานตามกำหนดเวลาล้มเหลว Basic Authentication ล้มเหลว 401
    28102 พารามิเตอร์พุชตามกำหนดเวลาไม่ถูกต้อง พารามิเตอร์ push ว่างเปล่าหรือไม่ถูกต้อง 400
    28103 เวลาพุชตามกำหนดเวลาไม่ถูกต้อง รูปแบบ single time หรือ trigger time ไม่ถูกต้อง 400
    28104 ไม่มีงานตามกำหนดเวลา schedule task ที่ร้องขอไม่มีอยู่ 404
    28105 งานตามกำหนดเวลาไม่มีเป้าหมายพุช ไม่มีเป้าหมายพุชที่ตรงตามเงื่อนไขในเวลาที่กำหนด 400
    28200 ข้อผิดพลาดของระบบของงานตามกำหนดเวลา เกิดข้อผิดพลาดภายในที่ไม่คาดคิดในบริการ 500

    ข้อจำกัดการ push

    ช่องทาง ความยาวหัวข้อ ความยาวเนื้อหา คำแนะนำอื่นๆ
    Engagelab ไม่จำกัด แต่จำกัดขนาดรวมของเนื้อหาข้อความ ไม่จำกัด แต่จำกัดขนาดรวมของเนื้อหาข้อความ ความยาวของ Notification MTPush จำกัดที่ 4000 ไบต์
    ช่องทางระบบ <20 อักขระ (40 อักขระภาษาอังกฤษ)
  • ศูนย์การแจ้งเตือนและสถานะล็อกหน้าจอสามารถแสดงได้สูงสุด 110 อักขระและ 55 อักขระจีน
  • แสดงได้สูงสุด 62 อักขระและ 31 อักขระจีนในหน้าต่างป๊อปอัพด้านบน และแสดงจุดไข่ปลาสำหรับส่วนที่เกิน
  • ไม่มี

    รหัสหลายภาษา

    ภาษา รหัส
    อังกฤษ en
    อาหรับ ar
    จีน (ตัวย่อ) zh-Hans
    จีน (ตัวเต็ม) zh-Hant
    เช็ก cs
    เดนมาร์ก da
    ดัตช์ nl
    ฝรั่งเศส fr
    เยอรมัน de
    ฮินดี hi
    อิตาลี it
    ญี่ปุ่น ja
    เกาหลี ko
    มาเลย์ ms
    รัสเซีย ru
    สเปน es
    ไทย th
    เวียดนาม vi
    อินโดนีเซีย id
    นอร์เวย์ no
    สวีเดน sv
    โปแลนด์ pl
    ตุรกี tr
    ฮิบรู he
    โปรตุเกส pt
    โรมาเนีย ro
    ฮังการี hu
    ฟินแลนด์ fi
    กรีก el
    ยูเครน uk
    ลาว lo
    โปรตุเกส (โปรตุเกส) pt_PT
    โปรตุเกส (บราซิล) pt_BR
    สเปน (อาร์เจนตินา) es_AR
    สเปน (สเปน) es_ES
    สเปน (ละตินอเมริกา) es_419
    Icon Solid Transparent White Qiyu
    ติดต่อฝ่ายขาย