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

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

สำหรับข้อมูลเพิ่มเติม โปรดดูที่ /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 !",//optional "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 !",//optional
            "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 จำเป็น url ของ web push ที่อยู่สำหรับกระโดดเมื่อคลิกการแจ้งเตือน
    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 id ของปุ่ม รองรับตั้งแต่เวอร์ชัน chrom48+
    text จำเป็น String เนื้อหาของปุ่ม รองรับตั้งแต่เวอร์ชัน chrom48+
    icon ไม่จำเป็น String ไอคอนของปุ่ม รองรับตั้งแต่เวอร์ชัน chrom50+
    url จำเป็น String ลิงก์เปลี่ยนเส้นทางของปุ่ม รองรับตั้งแต่เวอร์ชัน chrom48+ หากใช้ 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" } ] #### third_party_channel ฟิลด์นี้ใช้เพื่อกรอกข้อมูลส่วนบุคคลของช่องทางระบบเว็บ ชื่อคีย์คือ w3push และค่าคือ Json Object Object Object ประกอบด้วยฟิลด์การกระจายเพียงหนึ่งฟิลด์ที่ไม่จำเป็นของประเภท String | **คีย์เวิร์ด** | **ประเภท** | **ตัวเลือก** | **ความหมาย** | **คำอธิบาย** | | --- | --- | --- | --- | --- | | distribution | จำเป็น | String | เมื่อ Engagelab และช่องทางระบบอยู่ร่วมกัน ตั้งค่าลำดับความสำคัญของการส่ง | ค่าจะต้องไม่เป็นสตริงว่าง<li>first_ospush: หมายถึงการส่ง push ผ่านช่องทางระบบก่อน แต่ไม่ส่ง push ผ่านช่องทาง Engagelab<li>mtpush: หมายถึงการบังคับส่ง push ผ่านช่องทาง Engagelab<li>secondary_push: หมายถึงการส่ง push โดยใช้ Engagelab ก่อน และหาก Engagelab ไม่ออนไลน์จะใช้ช่องทางระบบ ช่องทางระบบใช้เป็นวิธีการเสริม (แนะนำวิธีนี้)<li>ospush:หมายถึงการบังคับส่ง push ผ่านช่องทางระบบเท่านั้น| ตัวอย่าง: ```json { "third_party_channel":{ "w3push":{ "distribution":"mtpush" } } }
                  
                  [
      {
        "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 และช่องทางระบบอยู่ร่วมกัน ตั้งค่าลำดับความสำคัญของการส่ง | ค่าจะต้องไม่เป็นสตริงว่าง<li>first_ospush: หมายถึงการส่ง push ผ่านช่องทางระบบก่อน แต่ไม่ส่ง push ผ่านช่องทาง Engagelab<li>mtpush: หมายถึงการบังคับส่ง push ผ่านช่องทาง Engagelab<li>secondary_push: หมายถึงการส่ง push โดยใช้ Engagelab ก่อน และหาก Engagelab ไม่ออนไลน์จะใช้ช่องทางระบบ ช่องทางระบบใช้เป็นวิธีการเสริม (แนะนำวิธีนี้)<li>ospush:หมายถึงการบังคับส่ง push ผ่านช่องทางระบบเท่านั้น| 
    
    ตัวอย่าง:
    ```json
    {
      "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 ไม่จำเป็น รหัสที่กำหนดเองที่ส่งในคำขอ จะถูกส่งกลับตามเดิมเมื่อมีการตอบสนอง
    message_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

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

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

    รหัส คำอธิบาย คำอธิบายโดยละเอียด รหัสสถานะ HTTP
    20101 พารามิเตอร์การ push ไม่ถูกต้อง registration_id ไม่ถูกต้องหรือไม่ใช่ของ appkey ปัจจุบัน 400
    21001 รองรับเฉพาะวิธีการ HTTP Post ไม่รองรับวิธีการ Get 405
    21002 ขาดพารามิเตอร์ที่จำเป็น ต้องแก้ไข 400
    21003 ค่าพารามิเตอร์ไม่ถูกต้อง ต้องแก้ไข 400
    21004 การตรวจสอบล้มเหลว ต้องแก้ไข สำหรับข้อมูลเพิ่มเติม โปรดดูที่การตรวจสอบการเรียกใช้ 401
    21005 เนื้อหาข้อความใหญ่เกินไป ต้องแก้ไข ความยาวของ Notification ต้องจำกัดที่ 2048 ไบต์ 400
    21008 พารามิเตอร์ app_key ไม่ถูกต้อง ต้องแก้ไข โปรดตรวจสอบว่า appkey ที่คุณส่งตรงกับในข้อมูลแอปพลิเคชันหรือไม่ และมีช่องว่างเพิ่มเติมหรือไม่ 400
    21009 ข้อผิดพลาดระบบภายใน ต้องแก้ไข 400
    21011 ไม่มีเป้าหมายการ push ที่ตรงตามเงื่อนไข โปรดตรวจสอบ 400
    21015 การตรวจสอบพารามิเตอร์คำขอล้มเหลว พารามิเตอร์ที่ไม่คาดคิด 400
    21016 การตรวจสอบพารามิเตอร์คำขอล้มเหลว ประเภทพารามิเตอร์ไม่ถูกต้องหรือความยาวพารามิเตอร์เกินขีดจำกัด 400
    21030 หมดเวลาบริการภายใน ลองอีกครั้งในภายหลัง 503
    23006 ข้อผิดพลาดพารามิเตอร์ ค่าสูงสุดของ big_push_duration คือ 1440 400
    23008 ข้อจำกัดความเร็วอินเทอร์เฟซ QPS ของอินเทอร์เฟซ push ของแอปพลิเคชันเดียวถึงขีดจำกัดบน (500 qps) 400
    27000 ข้อผิดพลาดหน่วยความจำระบบ โปรดลองอีกครั้ง 500
    27001 ข้อผิดพลาดพารามิเตอร์ ข้อมูลการตรวจสอบว่างเปล่า 401
    27008 ข้อผิดพลาดพารามิเตอร์ distribution ใน third_party_channel ไม่ว่างเปล่า แต่เนื้อหา alert ของ notification ว่างเปล่า 401
    27009 ข้อผิดพลาดพารามิเตอร์ รูปแบบของ distribution ใน third_party_channel ไม่ถูกต้องหรือว่างเปล่า 401

    ข้อจำกัดการ 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
    ติดต่อฝ่ายขาย