สร้าง API การส่งข้อความ

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

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

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

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

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

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

วิธีการร้องขอ

POST

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

ที่อยู่บริการอินเทอร์เฟซสอดคล้องกับจุดเชื่อมต่อของศูนย์ข้อมูลที่เลือก โปรดเลือกที่อยู่การเรียกใช้งานที่ตรงกับจุดเชื่อมต่อบริการแอปพลิเคชันของคุณ

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

POST v4/push
              
              
POST v4/push

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

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

สำหรับข้อมูลเพิ่มเติม โปรดดู วิธีการรับรองความถูกต้อง ในภาพรวม REST API

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

ส่วนหัวของคำขอ

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

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

เนื้อหาคำขอ

{ "from": "push", "to": "all", "body": { "platform": "all", "notification": { "alert" :"Hello, Push!", "android": { "alert": "Hi, Push!", "title": "Send to Android", "builder_id": 1, "extras": { "newsid": 321 } }, "ios": { "alert": "Hi, MTPush!", "sound": "default", "badge": "+1", "extras": { "newsid": 321 } } }, "options": { "time_to_live": 60, "apns_production": false } }, "request_id": "12345678", "custom_args":{ "Engagelab": "push to you" } }' > POST /v4/push HTTP/1.1 > Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==
              
              {
    "from": "push",
    "to": "all",
    "body": {
        "platform": "all",
        "notification": {
            "alert" :"Hello, Push!",
            "android": {
                "alert": "Hi, Push!",
                "title": "Send to Android",
                "builder_id": 1,
                "extras": {
                    "newsid": 321
                }
            },
            "ios": {
                "alert": "Hi, MTPush!",
                "sound": "default",
                "badge": "+1",
                "extras": {
                    "newsid": 321
                }
            }
        },
        "options": {
            "time_to_live": 60,
            "apns_production": false
        }
    },
    "request_id": "12345678",
    "custom_args":{
             "Engagelab": "push to you"
    }
}'
> POST /v4/push HTTP/1.1
> Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==

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

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

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

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

    from

    ผู้ส่งบริการปัจจุบัน ประเภท String ฟิลด์ตัวเลือก

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

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

    to

    วัตถุอุปกรณ์ที่ส่ง หมายถึงรายการอุปกรณ์ที่สามารถส่งได้ เพื่อยืนยันวัตถุอุปกรณ์ที่ส่ง App Push มีวิธีการหลายแบบ เช่น: ชื่อเล่น, ป้ายกำกับ, รหัสลงทะเบียน, กลุ่มย่อย, การกระจาย ฯลฯ

    เป้าหมายการส่ง

    นอกจากการกระจายแล้ว ยังมีวิธีการเลือกอุปกรณ์หลายแบบ ดังนี้:

    คำสำคัญ ประเภท ความหมาย คำอธิบาย ข้อควรระวัง
    all String การกระจาย ส่งไปยังอุปกรณ์ทั้งหมด เป้าหมายการส่งคืออุปกรณ์ที่ใช้งานในช่วง 365 วันที่ผ่านมา
    tag JSON Array ป้ายกำกับ อาเรย์ ป้ายกำกับหลายตัวเป็นความสัมพันธ์ OR ใช้ป้ายกำกับเพื่อจัดกลุ่มคุณสมบัติอุปกรณ์หรือผู้ใช้จำนวนมาก
  • ส่งได้สูงสุด 20 ป้ายกำกับ
  • องค์ประกอบป้ายกำกับที่ถูกต้อง: ตัวอักษร (แยกแยะตัวพิมพ์ใหญ่/เล็ก), ตัวเลข, ขีดล่าง, อักษรจีน
  • ข้อจำกัด: ความยาวป้ายกำกับสูงสุด 40 ไบต์ (ใช้ UTF-8)
  • tag_and JSON Array ป้ายกำกับ AND อาเรย์ ป้ายกำกับหลายตัวเป็นความสัมพันธ์ AND โปรดสังเกตความแตกต่างจาก tag ส่งได้สูงสุด 20 ป้ายกำกับ
    tag_not JSON Array ป้ายกำกับ NOT อาเรย์ ป้ายกำกับหลายตัว ก่อนอื่นจะรวมป้ายกำกับหลายตัว จากนั้นจึงหาผลลัพธ์ที่ตรงข้าม ส่งได้สูงสุด 20 ป้ายกำกับ
    alias JSON Array ชื่อเล่น อาเรย์ ชื่อเล่นหลายตัวเป็นความสัมพันธ์ OR ใช้ชื่อเล่นระบุผู้ใช้
  • อุปกรณ์หนึ่งสามารถเชื่อมโยงกับชื่อเล่นได้เพียงหนึ่งชื่อ แต่หลายอุปกรณ์สามารถเชื่อมโยงกับชื่อเล่นเดียวกันได้
  • ส่งได้สูงสุด 1000 ชื่อเล่น
  • องค์ประกอบชื่อเล่นที่ถูกต้อง: ตัวอักษร (แยกแยะตัวพิมพ์ใหญ่/เล็ก), ตัวเลข, ขีดล่าง, อักษรจีน
  • ข้อจำกัด: ความยาวชื่อเล่นสูงสุด 40 ไบต์ (ใช้ UTF-8)
  • registration_id JSON Array รหัสลงทะเบียน อาเรย์ รหัสลงทะเบียนหลายตัวเป็นความสัมพันธ์ OR ตัวระบุอุปกรณ์ ส่งได้สูงสุด 1000 รหัส
    live_activity_id String ตัวระบุการทำงานสด ค่าที่ตรงกับ liveActivityId ใน iOS SDK จำเป็นต้องให้เมื่ออัปเดตกิจกรรมสด
    seg JSON User group ID รหัสของกลุ่มผู้ใช้ที่สร้างขึ้นบนหน้าเพจ กำหนดเป็นอาร์เรย์ แต่ปัจจุบันจำกัดให้สามารถส่งได้ครั้งละหนึ่งรายการเท่านั้น ปัจจุบันมีข้อจำกัดที่สามารถส่งได้เพียงครั้งละหนึ่งรายการเท่านั้น

    ค่าหลายตัวในอาเรย์มีความสัมพันธ์เป็น 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


    ตัวอย่าง

    • ส่งไปยังทั้งหมด (broadcast):
    { "to": "all", }
                  
                  {
      "to": "all",
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    • ส่งไปยังหลายแท็ก (เพียงแค่ตรงกับแท็กใดแท็กหนึ่ง): ในเซินเจิ้น, กว่างโจว หรือปักกิ่ง
    { "to":{ "tag":[ "Shenzhen", "Guangzhou", "Beijing" ] } }
                  
                  {
        "to":{
            "tag":[
                "Shenzhen",
                "Guangzhou",
                "Beijing"
            ]
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    • ส่งไปยังหลายแท็ก (ต้องอยู่ในช่วงของแท็กหลายแท็กพร้อมกัน): ในเซินเจิ้นและ "ผู้หญิง"
    { "to":{ "tag_and":[ "Shenzhen", "female" ] } }
                  
                  {
        "to":{
            "tag_and":[
                "Shenzhen",
                "female"
            ]
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    • ส่งไปยังหลายชื่อเล่น:
    { "to":{ "alias":[ "4314", "892", "4531" ] } }
                  
                  {
        "to":{
            "alias":[
                "4314",
                "892",
                "4531"
            ]
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    • ส่งไปยังหลายหมายเลขการลงทะเบียน:
    { "to": { "registration_id": [ "4312kjklfds2", "8914afd2", "45fdsa31" ] } }
                  
                  {
      "to": {
        "registration_id": [
          "4312kjklfds2",
          "8914afd2",
          "45fdsa31"
        ]
      }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    • สามารถส่งพร้อมกันไปยังเป้าหมายการส่งหลายประเภท: ในเซินเจิ้นหรือกว่างโจวและเป็น "ผู้หญิง" "สมาชิก"
    { "to":{ "tag":[ "Shenzhen", "Guangzhou" ], "tag_and":[ "female", "members" ] } }
                  
                  {
        "to":{
            "tag":[
                "Shenzhen",
                "Guangzhou"
            ],
            "tag_and":[
                "female",
                "members"
            ]
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    • ส่งข้อความกิจกรรมสด
    { "to": { "live_activity_id": "LiveActivity-1" } }
                  
                    {
          "to": {
              "live_activity_id": "LiveActivity-1"
          }
      }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ส่งไปยัง ID การแบ่งกลุ่มผู้ใช้:

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

    เนื้อหา

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

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

    แพลตฟอร์ม

    MTPush รองรับการส่งสำหรับแพลตฟอร์ม Android และ iOS คำสำคัญคือ: "android", "ios" ตามลำดับ

    หากเป้าหมายแพลตฟอร์มคือ iOS คุณต้องตั้งค่าสภาพแวดล้อมการส่งโดยฟิลด์ apns_production ใน options true หมายถึงส่งสภาพแวดล้อม dev, False หมายถึงส่งสภาพแวดล้อมการพัฒนา

    ส่งไปยังทุกแพลตฟอร์ม:

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

    กำหนดแพลตฟอร์มการส่งเฉพาะ:

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

    การแจ้งเตือน

    วัตถุ "Notification" ซึ่งเป็นหนึ่งในวัตถุเนื้อหาของการส่ง (อีกอันคือ "Message") จะถูกส่งไปยังไคลเอนต์ในรูปแบบ "Notification"

    คำสำคัญ ประเภท ตัวเลือก ความหมาย คำอธิบาย
    alert String หรือ JSON Object ฟิลด์ที่จำเป็น เนื้อหา เนื้อหาของข้อความเอง หาก alert ไม่ได้ระบุภายใต้ android หรือ ios จะถูกใช้แทน
    android JSON Object ตัวเลือก คุณสมบัติแพลตฟอร์ม android พารามิเตอร์การส่งแพลตฟอร์ม Android ดู คำอธิบาย android
    ios JSON Object ตัวเลือก คุณสมบัติแพลตฟอร์ม ios พารามิเตอร์การส่งแพลตฟอร์ม ios ดู คำอธิบาย ios

    การแจ้งเตือน

    คุณสมบัติ "alert" ในตำแหน่งนี้ (โดยตรงภายใต้วัตถุ notification) เป็นการกำหนดแบบย่อ และหากข้อความแจ้งเตือนเหมือนกันในทุกแพลตฟอร์ม alert อาจไม่ถูกกำหนดภายใต้แพลตฟอร์ม และจะใช้ข้อความนี้แทน หากมีการกำหนดสำหรับแต่ละแพลตฟอร์ม จะมีการแทนที่การกำหนดที่นี่

    { "notification" : { "alert" : "Hello, Push!" } }
                  
                  {
      "notification" : {
        "alert" : "Hello, Push!"
      }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    วัตถุการแจ้งเตือนที่กำหนดข้างต้นจะถูกส่งไปยังหลายแพลตฟอร์มที่ระบุโดย "platform" และทั้งหมดจะมีข้อความการแจ้งเตือนเหมือนกัน

    Android

    การแจ้งเตือนบนแพลตฟอร์ม Android จะแสดงโดย MTPush SDK ตามรูปแบบแถบการแจ้งเตือนที่กำหนดไว้ ฟิลด์ที่รองรับมีดังนี้:

    คำสำคัญ ประเภทข้อมูล ตัวเลือก ความหมาย คำอธิบาย
    alert String หรือ JSON Object จำเป็นต้องระบุ เนื้อหาการแจ้งเตือน
  • หากระบุไว้ จะเขียนทับข้อมูลการแจ้งเตือนที่ตั้งค่าในระดับพาเรนต์
  • เนื้อหาอาจเป็นสตริงว่างเพื่อระบุว่าไม่ควรแสดงในแถบการแจ้งเตือน
  • สำหรับข้อจำกัดที่กำหนดโดยช่องทางการแจ้งเตือนต่างๆ ในฟิลด์นี้ โปรดดูที่ Push Limits.
  • title String ตัวเลือก หัวข้อการแจ้งเตือน
  • หากระบุไว้ จะเปลี่ยนชื่อแอปพลิเคชันในหน้าจอการแจ้งเตือน
  • สำหรับข้อจำกัดที่กำหนดโดยช่องทางการแจ้งเตือนต่างๆ ในฟิลด์นี้ โปรดดูที่ Push Limit.
  • builder_id Int ตัวเลือก ID รูปแบบแถบการแจ้งเตือน Android SDK สามารถ ตั้งค่ารูปแบบการแจ้งเตือนที่กำหนดเอง และฟิลด์นี้ระบุว่าจะใช้รูปแบบใด
    channel_id String ตัวเลือก ID ช่องทางการแจ้งเตือนของ Android สูงสุด 1000 ไบต์ ตั้งแต่ Android 8.0 เป็นต้นไป คุณสามารถ กำหนดค่าช่องทางการแจ้งเตือน ฟิลด์นี้ระบุผลการแสดงแถบการแจ้งเตือนตาม ID ช่องทาง
    priority Int ตัวเลือก ลำดับความสำคัญของการแสดงแถบการแจ้งเตือน ค่าเริ่มต้นคือ 0 โดยมีช่วงตั้งแต่ -2 ถึง 2
    category String ตัวเลือก การกรองหรือการจัดลำดับรายการในแถบการแจ้งเตือน ขึ้นอยู่กับกลยุทธ์การจัดการของผู้ผลิตสำหรับหมวดหมู่
    style Int ตัวเลือก ประเภทของรูปแบบแถบการแจ้งเตือน ใช้ระบุประเภทของรูปแบบแถบการแจ้งเตือน ค่าเริ่มต้นคือ 0,1=bigText,2=Inbox,3=bigPicture
    big_text String ตัวเลือก รูปแบบแถบการแจ้งเตือนแบบข้อความใหญ่
  • ใช้ได้เมื่อ style = 1 เนื้อหาจะแสดงในแถบการแจ้งเตือนเป็นข้อความใหญ่
  • รองรับบน ROM ที่มี API 16 หรือสูงกว่า
  • inbox JSONObject ตัวเลือก รูปแบบแถบการแจ้งเตือนแบบรายการข้อความ
  • ใช้ได้เมื่อ style = 2 รองรับสูงสุด 5 รายการ แต่ละรายการมีความยาวสูงสุด 1024 ตัวอย่าง: {"box0":"content1"}
  • รองรับบน ROM ที่มี API 16 หรือสูงกว่า
  • big_pic_path String ตัวเลือก รูปแบบแถบการแจ้งเตือนแบบรูปภาพใหญ่
  • ใช้ได้เมื่อ style = 3 ปัจจุบันรองรับภาพในรูปแบบ JPEG (เฉพาะช่องทาง FCM), .BMP (เฉพาะช่องทาง FCM) .jpg และ .png
  • รองรับ URL รูปภาพเครือข่าย, เส้นทางภาพในเครื่อง (ระบุเส้นทางสัมพัทธ์บน SD card)
  • รองรับบน ROM ที่มี API 16 หรือสูงกว่า
  • ขนาดสูงสุดของภาพคือ 1MB
  • extras JSON Object ตัวเลือก ฟิลด์เพิ่มเติม กำหนดข้อมูล Key/Value ที่กำหนดเองในรูปแบบ JSON สำหรับการใช้งานธุรกิจ
    intent JSON Object ตัวเลือก ระบุหน้าเป้าหมายสำหรับการนำทาง (แนะนำ) ใช้ฟิลด์ intent เพื่อระบุหน้าเป้าหมายที่จะนำทางเมื่อคลิกที่แถบการแจ้งเตือน ขอแนะนำให้กรอกฟิลด์ intent มิฉะนั้นการคลิกที่การแจ้งเตือนอาจไม่มีการกระทำการนำทาง ฟิลด์นี้รองรับสามประเภท:
  • นำทางไปยังหน้าเป้าหมาย: intent:#Intent;action=action path;component= package name /full activity name;end
  • ไปที่หน้าแรกของแอป: intent:#Intent;action=android.intent.action.MAIN;end (ที่อยู่คงที่)
  • นำทางไปยังที่อยู่ deeplink: scheme://test?key1=val1&key2=val2
  • large_icon String ตัวเลือก ไอคอนการแจ้งเตือนขนาดใหญ่
  • ขนาดไอคอนไม่ควรเกิน 300 KB
  • รองรับ URL รูปภาพเครือข่าย, เส้นทางภาพในเครื่อง (ระบุเส้นทางสัมพัทธ์บน SD card)
  • small_icon String ตัวเลือก ไอคอนการแจ้งเตือนขนาดเล็ก
  • ไอคอนการแจ้งเตือนขนาดเล็ก เส้นทางไอคอนสามารถเป็น URL รูปภาพเครือข่ายและไม่ควรเกิน 300 KB ในขนาด
  • หาก small_icon_uri ไม่ได้ระบุไว้ ฟิลด์ small_icon นี้จะถูกใช้โดยค่าเริ่มต้น
  • sound String ตัวเลือก เสียง
  • กรอกชื่อไฟล์เสียงในเส้นทาง /res/raw/ ของโปรเจ็กต์ Android โดยไม่ต้องมีนามสกุลไฟล์
  • หมายเหตุ: สำหรับ Android 8.0 และสูงกว่า คุณสมบัตินี้จะไม่ทำงานเมื่อมีการส่ง channel_id
  • badge_add_num Int ตัวเลือก ตั้งค่าค่าที่เพิ่มขึ้นสำหรับหมายเลขตราสัญลักษณ์, เพื่อเพิ่มไปยังหมายเลขตราสัญลักษณ์เดิม
  • คุณสมบัตินี้ทำงานได้เฉพาะสำหรับ Huawei EMUI 8.0 และสูงกว่า, Xiaomi MIUI 6 และสูงกว่า และอุปกรณ์ vivo เมื่อใช้ช่องทางของผู้ผลิต
  • หากฟิลด์นี้ไม่ได้กรอก หมายความว่าหมายเลขตราสัญลักษณ์จะไม่เปลี่ยนแปลง (สำหรับอุปกรณ์ Xiaomi ไม่ว่าจะส่งผ่านช่องทาง Engagelab หรือช่องทางของผู้ผลิต จะตั้งค่าเริ่มต้นเป็น +1)
  • ช่วงค่า: 1-99 หากตั้งค่าในช่วงนี้ ข้อมูล badge_add_num สำหรับการกำหนดค่าข้อความแถบการแจ้งเตือนถัดไปจะถูกเพิ่มไปยังหมายเลขตราสัญลักษณ์เดิม ขอแนะนำให้ตั้งค่าเป็น 1
  • ตัวอย่าง: หาก badge_add_num ถูกตั้งค่าเป็น 1 และหมายเลขตราสัญลักษณ์เดิมคือ 2 หลังจากส่งข้อความตราสัญลักษณ์นี้ หมายเลขตราสัญลักษณ์ของแอปพลิเคชันจะแสดงเป็น 3
  • badge_set_num Int ตัวเลือก กำหนดค่าคงที่สำหรับหมายเลขตรา
  • หากไม่ได้กรอกฟิลด์นี้ หมายความว่าหมายเลขตราจะไม่ถูกเปลี่ยนแปลง
  • ช่วงค่าคือ: 0-99 หากตั้งค่าหมายเลขในช่วงนี้ หมายเลขตราที่สอดคล้องกับการกำหนดค่าข้อความแถบการแจ้งเตือนถัดไปจะเป็นค่าตรา ตัวอย่างเช่น: หากตั้งค่า badge_set_num เป็น 1 ไม่ว่าจะเป็นหมายเลขตราก่อนหน้าของแอปพลิเคชันใด หลังจากส่งข้อความตรานี้ หมายเลขตราของแอปพลิเคชันจะแสดงเป็น 1 เสมอ
  • badge_class String ตัวเลือก คลาสกิจกรรมทางเข้าแอปพลิเคชันที่สอดคล้องกับไอคอนบนเดสก์ท็อป เช่น "com.test.badge.MainActivity"
  • มีผลเฉพาะสำหรับการส่งผ่านช่องทาง Huawei หากค่านี้กรอกด้วยคลาสกิจกรรมที่ไม่ใช่กิจกรรมหลัก จะมีการใช้ตรรกะข้อจำกัดของผู้ผลิต
  • หากต้องการใช้งานฟังก์ชันเพิ่มตราสัญลักษณ์ คุณต้องใช้ badge_add_num ร่วมกับมัน ทั้งสองต้องอยู่ร่วมกัน และไม่สามารถขาดได้
  • display_foreground String ตัวเลือก แอปอยู่ในเบื้องหน้า ควรแสดงการแจ้งเตือนหรือไม่
  • เมื่อค่าคือ "1" การแจ้งเตือนจะปรากฏในแถบการแจ้งเตือนเมื่อแอปอยู่ในเบื้องหน้า
  • เมื่อค่าคือ "0" การแจ้งเตือนจะไม่ปรากฏในแถบการแจ้งเตือนเมื่อแอปอยู่ในเบื้องหน้า
  • หมายเหตุ: โดยค่าเริ่มต้น การแจ้งเตือนจะปรากฏในแถบการแจ้งเตือนเมื่อแอปอยู่ในเบื้องหน้า รองรับตั้งแต่ MTPush Android SDK เวอร์ชัน 4.3.1
  • group_id String ตัวเลือก ID กลุ่มข้อความ ตัวระบุเฉพาะสำหรับการจัดกลุ่มข้อความ ใช้เพื่อควบคุมผลการยุบข้อความ รองรับตั้งแต่ MTPush Android SDK เวอร์ชัน 5.0.1
    { "notification": { "android": { "alert": "hello, MTPush!", "title": "Push test", "builder_id": 3, "style": 1, "big_text": "big text content", "inbox":JSONObject, "big_pic_path": "picture url", "priority": 0, "category": "category str", "large_icon": "http://pushapi-sgp.engagelab.comlargeIcon.jpg", "small_icon": "http://www.small.com/small_icon.jpg", "intent": { "url": "intent:#Intent;component=push.pushapi-sgp.engagelab.com/com.example.mtpushdemo.SettingActivity;end" }, "extras": { "news_id": 134, "my_key": "a value" } } } }
                  
                  {
        "notification": {
            "android": {
                "alert": "hello, MTPush!",
                "title": "Push test",
                "builder_id": 3,
                "style": 1,
                "big_text": "big text content",
                "inbox":JSONObject,
                "big_pic_path": "picture url",
                "priority": 0,
                "category": "category str",
                "large_icon": "http://pushapi-sgp.engagelab.comlargeIcon.jpg",
                "small_icon": "http://www.small.com/small_icon.jpg",
                "intent": {
                    "url": "intent:#Intent;component=push.pushapi-sgp.engagelab.com/com.example.mtpushdemo.SettingActivity;end"
                },
                "extras": {
                    "news_id": 134,
                    "my_key": "a value"
                }
            }
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    iOS

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

    เนื้อหาการแจ้งเตือนถูกส่งโดยตัวแทน MTPush ไปยังเซิร์ฟเวอร์ Apple APNs และแสดงบนอุปกรณ์ iOS เป็นการแจ้งเตือนระบบ

    เนื้อหาการแจ้งเตือนตรงตามข้อกำหนด APNs และรองรับฟิลด์ต่อไปนี้:

    คำสำคัญ ประเภท ตัวเลือก ความหมาย คำอธิบาย
    alert String หรือ JSON Object ฟิลด์ที่จำเป็นต้องระบุ เนื้อหาการแจ้งเตือน
  • เนื้อหาที่ระบุไว้ที่นี่จะเขียนทับข้อความแจ้งเตือนที่ระบุโดยพาเรนต์
  • หากเนื้อหาเป็นค่าว่าง จะไม่แสดงในแถบการแจ้งเตือน
  • รองรับรูปแบบสตริงรวมถึง alert payload ที่กำหนดโดยทางการ
  • โครงสร้างที่มีคีย์ที่รองรับอย่างเป็นทางการ เช่น title และ subtitle.
  • sound String หรือ JSON Object ตัวเลือก เสียงการแจ้งเตือน
  • การแจ้งเตือนทั่วไป: ประเภท String
  • หากฟิลด์นี้ไม่มีอยู่ จะไม่มีการแจ้งเตือนเสียงสำหรับข้อความนี้
  • หากฟิลด์นี้มีอยู่ เสียงที่ระบุจะเล่นหากพบ มิฉะนั้นจะเล่นเสียงเริ่มต้น
  • หากฟิลด์นี้เป็นค่าว่าง iOS 7 จะเป็นเสียงเริ่มต้น iOS 8 และสูงกว่าจะไม่มีเสียง
  • การแจ้งเตือน: JSON Object ซึ่งรองรับโครงสร้าง payload ที่กำหนดโดยทางการที่มีคีย์ที่รองรับอย่างเป็นทางการ เช่น critical, name และ volume.
  • badge Int หรือ String ตัวเลือก ใช้เครื่องหมายมุม
  • ค่าของ N สามารถตั้งค่าเป็น N, +N หรือ -N และค่าของ N อยู่ในช่วง [0,99] หากค่ามุมที่อัปโหลดคือ 10 หมายความว่ามุมจะตั้งค่าเป็น N, 10+N, 10-N (ค่าเริ่มต้นจะล้างมุมหากค่าน้อยกว่า 0)
  • เป็น 0 หรือค่าว่าง หมายความว่าล้างมุม
  • หากไม่ได้กรอก หมายความว่าหมายเลขมุมไม่เปลี่ยนแปลง
  • ไลบรารี API อย่างเป็นทางการของ MTPush (SDK) จะกรอกค่ามุมเป็น "+1" โดยค่าเริ่มต้น
  • content-available Boolean ตัวเลือก การส่งเพื่อปลุก สำหรับรายละเอียด โปรดดูที่: "content-available":true เมื่อส่ง หมายความว่าเป็น Background Remote Notification หากไม่มี จะเป็น Remote Notification ปกติ:Background Remote Notification
    mutable-content Boolean ตัวเลือก ส่วนขยายการแจ้งเตือน ฟีเจอร์ Notification Service Extension ที่เพิ่มใน iOS 10 เพื่อรายงานสถานะการส่งของแต่ละข้อความ APNs การใช้ฟีเจอร์นี้ต้องการให้ไคลเอนต์ ดำเนินการอินเทอร์เฟซ Service Extensionและใช้ฟิลด์ mutable-content บนเซิร์ฟเวอร์เพื่อทำการตั้งค่าให้สมบูรณ์
  • true: ระบุว่ารองรับฟีเจอร์ UNNotificationServiceExtension ของ iOS 10
  • หากฟิลด์นี้ไม่มีอยู่ จะเป็น Remote Notification ปกติและไม่สามารถนับข้อมูลการมาถึงได้
  • category String ตัวเลือก รองรับเฉพาะใน iOS 8 ตั้งค่าค่าของฟิลด์ "category" ใน payload ของ APNs
    extras JSON Object ตัวเลือก ฟิลด์เพิ่มเติม ที่นี่ข้อมูล Key/value ถูกกำหนดเองสำหรับการใช้งานธุรกิจ
    thread-id String ตัวเลือก กลุ่มการแจ้งเตือน การแจ้งเตือนระยะไกลของ iOS ถูกจัดกลุ่มตามคุณสมบัตินี้ เพื่อให้การแจ้งเตือนจาก thread-id เดียวกันถูกจัดกลุ่มเข้าด้วยกัน
    interruption-level String ตัวเลือก ระดับการรบกวนของการแจ้งเตือนสำหรับลำดับความสำคัญและเวลาการส่ง สำหรับ iOS 15 ระดับการแจ้งเตือนสามารถเป็น active,critical,passive,timeSensitive เท่านั้น โปรดดูที่:UNNotificationInterruptionLevel

    การแจ้งเตือน iOS สำหรับ MTPush จะถูกส่งต่อไปยังเซิร์ฟเวอร์ APNs ความยาวการแจ้งเตือนใน MTPush ถูกจำกัดไว้ที่ 4000 ไบต์ MTPush ใช้การเข้ารหัส utf-8 เมื่อส่ง ดังนั้นตัวอักษรจีนหนึ่งตัวจะใช้พื้นที่ 3 ไบต์ในความยาว

    ตัวอย่างการส่งฝั่งเซิร์ฟเวอร์:

    { "notification": { "ios": { "alert": "hello, Push!", "sound": "sound.caf", "badge": 1, "extras": { "news_id": 134, "my_key": "a value" } } } }
                  
                  {
        "notification": {
            "ios": {
                "alert": "hello, Push!",
                "sound": "sound.caf",
                "badge": 1,
                "extras": {
                    "news_id": 134,
                    "my_key": "a value"
                }
            }
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ข้อความที่ได้รับโดยไคลเอนต์:

    { "_j_msgid" = 813843507; aps = { alert = "hello,Push!"; badge = 1; sound = "sound.caf"; }; "my_key" = "a value"; "news_id" = 134; }
                  
                  {
      "_j_msgid" = 813843507;
      aps =     {
      alert = "hello,Push!";
      badge = 1;
      sound = "sound.caf";
    };
    "my_key" = "a value";
    "news_id" = 134;
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ข้อความ

    ข้อความในแอปพลิเคชัน หรือเรียกอีกชื่อว่า: ข้อความที่กำหนดเอง, ข้อความผ่าน

    • ส่วนนี้จะไม่แสดงในแถบการแจ้งเตือน, MTPush SDK จะรับเนื้อหาข้อความและส่งต่อไปยังแอปพลิเคชัน
    • iOS เมื่อแอปพลิเคชันอยู่ในโหมดเบื้องหน้า จะได้รับส่วนนี้ผ่านช่องทางข้อความในแอปพลิเคชัน (ไม่ใช่ APNS)

    ฟิลด์ที่รองรับมีดังนี้:

    คำสำคัญ ประเภท ตัวเลือก ความหมาย
    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"
        }
      }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    กิจกรรมแบบเรียลไทม์

    หมายเหตุ: ข้อความกิจกรรมแบบเรียลไทม์จำเป็นต้องใช้ใบรับรอง iOS P8 และเลือกการตั้งค่าการรับรอง iOS WebPortal ในหัวข้อ "การตั้งค่าการรับรองโทเค็น"

    เนื้อหาข้อความกิจกรรมแบบเรียลไทม์ประกอบด้วยฟิลด์ดังต่อไปนี้:

    คำสำคัญ ประเภท ตัวเลือก คำอธิบาย
    ios JSON Object จำเป็น ดูฟิลด์รายละเอียดเพิ่มเติมที่ iOS JSON Object

    iOS JSON Object

    คำสำคัญ ประเภท ตัวเลือก คำอธิบาย
    event string จำเป็น สร้าง: "start", อัปเดต: "update", สิ้นสุด: "end"; เมื่อ event=start จำเป็นต้องกรอก
    attributes-type string ไม่จำเป็น ประเภทกิจกรรมแบบเรียลไทม์ กำหนดค่าโดยนักพัฒนา; เมื่อ event=start จำเป็นต้องกรอก
    content-state JSON Object จำเป็น เนื้อหาแบบไดนามิกของกิจกรรมแบบเรียลไทม์ ต้องตรงกับค่าของ SDK ฝั่งไคลเอนต์ (สอดคล้องกับฟิลด์ content-state ของ Apple)
    alert JSON Object ไม่จำเป็น ดูรายละเอียดเพิ่มเติมที่ iOS alert JSON Object
    dismissal-date int ไม่จำเป็น เวลาสิ้นสุดการแสดงกิจกรรมแบบเรียลไทม์
    attributes JSON Object ไม่จำเป็น เนื้อหาแบบสแตติกของกิจกรรมแบบเรียลไทม์ ต้องตรงกับค่าของ SDK ฝั่งไคลเอนต์ (สอดคล้องกับฟิลด์ attributes ของ Apple)
    stale-date int ไม่จำเป็น เวลาหมดอายุของกิจกรรมแบบเรียลไทม์; หากน้อยกว่าปัจจุบัน กิจกรรมจะไม่อัปเดต
    relevance-score int ไม่จำเป็น ลำดับความสำคัญของกิจกรรมแบบเรียลไทม์บน Dynamic Island ค่าระหว่าง 1 ถึง 100; ค่ายิ่งมาก ความสำคัญของกิจกรรมยิ่งสูง; หากไม่ได้ระบุ จะใช้ค่าลำดับความสำคัญสูงสุดโดยค่าเริ่มต้น
    apns-priority int ไม่จำเป็น 5 หรือ 10 ค่าเริ่มต้นคือ 10; การแจ้งเตือน apns-priority=5 จะไม่ใช้ข้อจำกัดอัตราของ Apple; หากเกินข้อจำกัด จะจำกัดการแจ้งเตือน

    iOS alert JSON Object

    คำสำคัญ ประเภท ตัวเลือก คำอธิบาย
    title string ไม่จำเป็น หัวข้อที่แสดงใน Apple Watch
    body string ไม่จำเป็น เนื้อหาที่แสดงใน Apple Watch
    sound string ไม่จำเป็น เสียงแจ้งเตือน
    • ข้อความกิจกรรมแบบเรียลไทม์ของ iOS จะถูกส่งต่อไปยังเซิร์ฟเวอร์ของ Apple ผ่าน Engagelab Push Apple กำหนดให้ข้อมูลอัปเดตแบบไดนามิกของข้อความกิจกรรมแบบเรียลไทม์ (ActivityKit) ต้องไม่เกิน 4096 ไบต์
    • เนื่องจากความต้องการการบรรจุใหม่และการพิจารณาความปลอดภัย Engagelab Push กำหนดความยาวรวมของพารามิเตอร์ "live_activity" ใน "iOS": { } และเนื้อหาในวงเล็บต้องไม่เกิน 3584 ไบต์ JPush ใช้การเข้ารหัส UTF-8 ซึ่งตัวอักษรจีนหนึ่งตัวใช้ 3 ไบต์

    ตัวอย่างการส่งข้อความกิจกรรมแบบเรียลไทม์

    ประเภท attributes-type และ live_activity_id ที่ใช้ในกิจกรรมแบบเรียลไทม์จะถูกรายงานโดย SDK ของนักพัฒนา ก่อนใช้งานกิจกรรมแบบเรียลไทม์ จำเป็นต้องรายงานโทเค็นเริ่มต้นการแจ้งเตือนของอุปกรณ์และโทเค็นอัปเดต ดูกระบวนการโดยละเอียดที่ คู่มือกิจกรรมแบบเรียลไทม์ของ Apple

    • การสร้าง

      { "from": "push", "to": { "registration_id": [ "161a3797c816b134042" ] }, "body": { "platform": "ios", "live_activity": { "ios": { "event": "start", "content-state": { "eventStr": "hello", "eventTime":1685952000 }, "attributes": { "name": "1", "number": 2, "tag": "mytag" }, "alert": { "title": "hello", "body": "welcome" }, "attributes-type": "my_la_type", "relevance-score": 100, "apns-priority": 100 } } }, "request_id": "12345678", "custom_args": "12345678" }
                    
                    {
          "from": "push",
         "to": {
              "registration_id": [
                  "161a3797c816b134042"
              ]
          },
          "body": {
              "platform": "ios",
              "live_activity": {
                  "ios": {
                      "event": "start",
                      "content-state": {
                          "eventStr": "hello",
                          "eventTime":1685952000
                      },
                      "attributes": {
                          "name": "1",
                          "number": 2,
                          "tag": "mytag"
                      },
                      "alert": {
                          "title": "hello",
                          "body": "welcome"
                      },
                      "attributes-type": "my_la_type",
                      "relevance-score": 100,
                      "apns-priority": 100
                  }
              }
          },
          "request_id": "12345678",
          "custom_args": "12345678"
      }
      
                  
      โค้ดนี้โชว์เป็นหน้าต่างลอย
    • การอัปเดต

      { "from": "push", "to": { "live_activity_id": "my_la_id" }, "body": { "platform": "ios", "live_activity": { "ios": { "event": "update", "content-state": { "eventStr": "test_live", "eventTime": 198 }, "alert": { "title": "123411", "body": "123411" } } } }, "request_id": "12345678", "custom_args": "12345678" }
                    
                    {
         "from": "push",
         "to": {
               "live_activity_id": "my_la_id"
          },
          "body": {
              "platform": "ios",
              "live_activity": {
                  "ios": {
                      "event": "update",
                      "content-state": {
                          "eventStr": "test_live",
                          "eventTime": 198
                      },
      
                      "alert": {
                          "title": "123411",
                          "body": "123411"
                      }
                  }
              }
          },
          "request_id": "12345678",
          "custom_args": "12345678"
      }
      
                  
      โค้ดนี้โชว์เป็นหน้าต่างลอย

    Voip

    ฟังก์ชัน VOIP ของ iOS ประเภทนี้ไม่รองรับการอยู่ร่วมกับประเภทข้อความ iOS อื่น ๆ โครงสร้างพารามิเตอร์คำขออ้างอิง:

    { "from": "push", "to": { "registration_id": [ "1a0018970a91da03de5" ] }, "request_id": "12345", "custom_args": "12345", "body": { "platform": "ios", "voip": { "key": "value // คีย์-ค่าแบบกำหนดเองใด ๆ ที่จะส่งต่อไปยังแอปพลิเคชัน" } } }
                  
                  { 
        "from": "push", 
        "to": { 
            "registration_id": [ "1a0018970a91da03de5" ] 
        }, 
        "request_id": "12345", 
        "custom_args": "12345", 
        "body": { 
            "platform": "ios", 
            "voip": { 
                "key": "value // คีย์-ค่าแบบกำหนดเองใด ๆ ที่จะส่งต่อไปยังแอปพลิเคชัน" 
            } 
        } 
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตัวเลือก

    ตัวเลือกการแจ้งเตือนแบบพุชปัจจุบันประกอบด้วยเนื้อหาดังต่อไปนี้:

    คำสำคัญ ประเภท ตัวเลือก ความหมาย คำอธิบาย
    time_to_live Int หรือ String ไม่จำเป็น เวลาการเก็บข้อความออฟไลน์ (วินาที) หากผู้ใช้ไม่ได้ออนไลน์ในขณะพุช ข้อความจะถูกเก็บไว้ในระยะเวลาที่กำหนด และจะพุชอีกครั้งเมื่อผู้ใช้ออนไลน์ ค่าเริ่มต้นคือ 86400 (1 วัน) ค่าสูงสุดคือ 15 วัน หากค่าที่ตั้งไว้เกินค่าที่ผู้ให้บริการรองรับ จะใช้ค่าค่าสูงสุดของผู้ให้บริการ การตั้งค่าเป็น 0 หมายถึงไม่เก็บข้อความออฟไลน์; เฉพาะผู้ใช้ออนไลน์เท่านั้นที่จะได้รับข้อความ
    override_msg_id Long ไม่จำเป็น ID ข้อความที่ครอบคลุม หากการพุชปัจจุบันใช้เพื่อครอบคลุมการพุชก่อนหน้า ให้ป้อน msg_id ของการพุชก่อนหน้าเพื่อให้เกิดผลครอบคลุม ในกรณีนี้ แม้ว่าผู้ใช้ Android จะได้รับข้อความแล้ว และการแจ้งเตือนไม่ได้ถูกลบออกจากแถบการแจ้งเตือน msg_id จะได้รับเนื้อหาอัปเดตแบบออฟไลน์ เนื้อหาใหม่จะครอบคลุมการแจ้งเตือนก่อนหน้า ฟังก์ชันครอบคลุมมีอายุการใช้งาน 1 วัน หาก msg_id ไม่มีอยู่ในระยะเวลาที่กำหนด จะส่งคืนข้อผิดพลาด 7006 ซึ่งหมายถึงการดำเนินการครอบคลุมข้อความที่ไม่ถูกต้อง และข้อความปัจจุบันจะไม่ถูกพุช ฟิลด์นี้ใช้ได้เฉพาะกับ Android และรองรับเฉพาะช่องทาง Engagelab, Xiaomi, Meizu, OPPO, FCM และ Huawei (อุปกรณ์ EMUI10 ขึ้นไป)
    apns_production Boolean ไม่จำเป็น สภาพแวดล้อมการผลิต APNs ฟิลด์นี้ใช้ได้เฉพาะกับการแจ้งเตือน iOS
  • true: พุชไปยังสภาพแวดล้อมการผลิต;
  • false: พุชไปยังสภาพแวดล้อมการพัฒนา
  • กฎค่าเริ่มต้น: หากเปิดใช้งาน "ใบรับรองการพัฒนา" ในการกำหนดค่า ฟิลด์นี้จะเป็น false โดยค่าเริ่มต้นหากไม่ได้ตั้งค่าอย่างชัดเจน มิฉะนั้น จะเป็น true โดยค่าเริ่มต้นเมื่อไม่ได้ระบุ แนะนำอย่างยิ่ง ให้ระบุค่าของฟิลด์นี้อย่างชัดเจนในคำขอพุช
  • apns_collapse_id String ไม่จำเป็น ตัวระบุสำหรับการอัปเดตการแจ้งเตือน iOS หากการแจ้งเตือน APNs ใหม่มี apns-collapse-id เดียวกันกับการแจ้งเตือนที่มีอยู่ในศูนย์การแจ้งเตือน เนื้อหาใหม่จะอัปเดตการแจ้งเตือนนั้นและวางไว้ที่ด้านบนของศูนย์การแจ้งเตือน ความยาวของ collapse id ต้องไม่เกิน 64 ไบต์
    big_push_duration Int ไม่จำเป็น ระยะเวลาการพุชแบบช้า (นาที) เรียกอีกชื่อว่าการพุชแบบช้า จะลดความเร็วการพุชที่รวดเร็วเดิมลง และกระจายการพุชไปยังผู้ใช้เป้าหมายอย่างสม่ำเสมอในช่วงเวลาที่กำหนด n นาที; ค่าสูงสุดคือ 1440
    multi_language json Object ไม่จำเป็น การตั้งค่าการพุชหลายภาษา การตั้งค่าการปรับเนื้อหาการพุชหลายภาษา ดูรายละเอียดเพิ่มเติมที่ multi_language
    third_party_channel JSON Object ไม่จำเป็น ข้อมูลการกำหนดค่าช่องทางผู้ผลิต Android ใช้ได้เฉพาะกับผู้ใช้ที่กำหนดค่าช่องทางผู้ผลิต ดูรายละเอียดเพิ่มเติมที่ third_party_channel
    classification Int ไม่จำเป็น การตั้งค่าประเภทข้อความพุช EngageLab ไม่ได้ตัดสินหรือปรับเทียบประเภทข้อความที่ระบุ หากไม่ได้ระบุ จะเป็น 0 โดยค่าเริ่มต้น 0: แทนข้อความการดำเนินงาน 1: แทนข้อความระบบ
    voice_value String ไม่จำเป็น ค่าของไฟล์เสียง พารามิเตอร์หลายตัวคั่นด้วยเครื่องหมายจุลภาค '#' หมายถึงต้องแยกวิเคราะห์; มิฉะนั้นจะจับคู่ไฟล์ภาษาโดยตรง ค่าเสียงที่ระบุในเนื้อหาการพุชจะไม่ถูกแปลงเป็นการออกเสียงหากไม่ตรงกับกฎภาษา
    enhanc_message Bool ไม่จำเป็น เปิดใช้งานการแสดงข้อความในแอปพลิเคชัน true - เปิดใช้งานการเพิ่มประสิทธิภาพ; false - ปิดใช้งานการเพิ่มประสิทธิภาพ หากการอนุญาตการแจ้งเตือนถูกปิดใช้งาน การเปิดใช้งานฟังก์ชันนี้จะแสดงเนื้อหาข้อความในแถบการแจ้งเตือนในรูปแบบข้อความในแอปพลิเคชันเมื่อผู้ใช้เรียกใช้แอปพลิเคชัน ค่าเริ่มต้นของฟังก์ชันนี้คือ false และจะมีผลเฉพาะเมื่อเปิดใช้งานอย่างชัดเจน
    plan_id String ไม่จำเป็น ตัวระบุแผนการพุช ต้องสร้างตัวระบุแผนก่อน สามารถสร้างได้ในคอนโซลหรือผ่าน API
    cid String ไม่จำเป็น ตัวระบุคำขอพุชเพื่อป้องกันการพุชซ้ำ อนุญาตเฉพาะตัวอักษร ตัวเลข ขีดล่าง และขีดกลาง ความยาวไม่เกิน 64 ตัวอักษร ฟิลด์นี้ต้องไม่ซ้ำกันภายใต้ AppKey เดียวกัน วิธีหลีกเลี่ยงการพุชซ้ำ

    Multi_language

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

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

    Third_party_channel

    ฟิลด์นี้ใช้สำหรับกรอกข้อมูลเฉพาะของช่องทางผู้ผลิต Android key รองรับเฉพาะช่องทางผู้ผลิต Android 7 ช่องทาง ได้แก่ xiaomi, huawei, meizu, oppo, vivo, fcm, honor สามารถมีอยู่ได้หนึ่งหรือหลายช่องทางพร้อมกัน แต่ละประเภท key ของผู้ผลิตสามารถมีตัวเลือกดังนี้:

    พารามิเตอร์คำขอ
    คำสำคัญ ประเภท ตัวเลือก ความหมาย คำอธิบาย
    distribution_new String ตัวเลือกที่จำเป็น _ เมื่อ Engagelab และช่องทางผู้ผลิตอยู่ร่วมกัน ให้ตั้งค่าลำดับความสำคัญของการส่งข้อมูลลง
  • mtpush: หมายถึงการส่งข้อมูลบังคับใช้ช่องทาง Engagelab
  • pns_mtpush: หมายถึงสำหรับผู้ใช้ที่มีการรวมกันของ fcm+ผู้ผลิตในประเทศ การส่งข้อมูลบังคับใช้ช่องทาง Xiaomi/Huawei/Meizu/Oppo/Vivo/Honor ก่อน หากล้มเหลวจะใช้ช่องทาง Engagelab
  • mtpush_pns: หมายถึงสำหรับผู้ใช้ที่มีการรวมกันของ fcm+ผู้ผลิตในประเทศ การส่งข้อมูลจะใช้ Engagelab ก่อน หาก Engagelab ไม่ออนไลน์จะใช้ช่องทางผู้ผลิตเป็นตัวเลือกสำรอง
  • fcm_mtpush: หมายถึงสำหรับผู้ใช้ที่มีการรวมกันของ fcm+ผู้ผลิตในประเทศ การส่งข้อมูลบังคับใช้ช่องทาง fcm ก่อน หากล้มเหลวจะใช้ช่องทาง Engagelab
  • mtpush_fcm: หมายถึงสำหรับผู้ใช้ที่มีการรวมกันของ fcm+ผู้ผลิตในประเทศ การส่งข้อมูลจะใช้ Engagelab ก่อน หาก Engagelab ไม่ออนไลน์จะใช้ช่องทาง fcm เป็นตัวเลือกสำรอง``_หมายเหตุ: สำหรับกลยุทธ์ pns_mtpush/fcm_mtpush/mtpush_pns/mtpush_fcm หากอุปกรณ์มีเพียงช่องทางการส่งข้อมูลระบบที่ใช้งานได้เพียงช่องทางเดียว (FCM หรือช่องทางผู้ผลิต) กลยุทธ์ที่ระบุไว้สำหรับ FCM และช่องทางผู้ผลิตจะถูกละเว้นและใช้ช่องทางระบบที่รวมสำเร็จแทน
  • channel_id String ตัวเลือก การจัดประเภทข้อความในแถบแจ้งเตือน
  • เพื่อปรับให้เข้ากับการจัดประเภทการแจ้งเตือนของอุปกรณ์ Xiaomi, Huawei, OPPO นักพัฒนาจำเป็นต้องยื่นขอจากผู้ผลิต ดูคำแนะนำในการยื่นขอเพิ่มเติมได้ที่: คำแนะนำการจัดประเภทการแจ้งเตือนของผู้ผลิต
  • หมายเหตุ: แอปพลิเคชันที่ประมวลผลข้อมูลในเขตจีนของ Huawei ไม่สนับสนุนฟิลด์นี้ รายละเอียดเพิ่มเติมดูได้ที่ ช่องทางการแจ้งเตือนที่กำหนดเองของ Huawei
  • ฟิลด์ channel_id ยังสามารถใช้ได้บน Android หากกรอกฟิลด์นี้ จะถูกใช้เป็นลำดับแรก มิฉะนั้นจะใช้การกำหนดของ android.channel_id
  • สำคัญ: OPPO จะเริ่มใช้ กฎการจัดประเภทการแจ้งเตือนใหม่ ตั้งแต่วันที่ 20 พฤศจิกายน 2024 ขอแนะนำให้กรอกฟิลด์นี้รวมถึงฟิลด์ category และ notify_level ด้านล่าง
  • classification Int ตัวเลือก การจัดประเภทข้อความในแถบแจ้งเตือน การจัดประเภทข้อความในแถบแจ้งเตือนของผู้ผลิต Vivo หากไม่ได้กรอกค่าเริ่มต้นคือ 0
  • 0: หมายถึงข้อความการดำเนินงาน
  • 1: หมายถึงข้อความระบบ``ปัจจุบัน Vivo มีข้อกำหนดที่เข้มงวดเกี่ยวกับการจัดประเภทข้อความระบบ ดูกฎเพิ่มเติมได้ที่: แพลตฟอร์มนักพัฒนา Vivo
  • pushMode Int ตัวเลือก โหมดการส่งข้อมูลของ Vivo ค่าเริ่มต้นคือ 0 ดูรายละเอียดเพิ่มเติมได้ที่ vivo pushMode การใช้การส่งข้อมูลทดสอบ จำเป็นต้องกำหนดค่า ID ของอุปกรณ์ทดสอบในแบ็คเอนด์ Vivo ด้วยตนเอง
  • 0: หมายถึงการส่งข้อมูลจริง
  • 1: หมายถึงการส่งข้อมูลทดสอบ
  • importance String ตัวเลือก การจัดประเภทข้อความอัจฉริยะในแถบแจ้งเตือนของ Huawei/荣耀 เพื่อปรับให้เข้ากับการจัดประเภทข้อความอัจฉริยะในแถบแจ้งเตือนของ Huawei สอดคล้องกับฟิลด์ importance ของ Huawei หากไม่ได้กรอกค่าเริ่มต้นคือ “NORMAL” อ้างอิงจาก: การจัดประเภทข้อความอัจฉริยะของ Huawei
  • LOW: ข้อความทั่วไป
  • NORMAL: ข้อความสำคัญ
  • HIGH: ข้อความสำคัญมาก (รองรับเฉพาะ Huawei)
  • urgency String ตัวเลือก ลำดับความสำคัญของข้อความที่กำหนดเองของผู้ผลิต Huawei เพื่อปรับให้เข้ากับลำดับความสำคัญของข้อความที่กำหนดเองของผู้ผลิต Huawei
  • HIGH: ข้อความสำคัญมาก ข้อความระดับ HIGH เมื่อถึงอุปกรณ์ของผู้ใช้สามารถบังคับเปิดกระบวนการแอปพลิเคชันได้
  • NORMAL: ข้อความสำคัญ``การตั้งค่า “HIGH” จำเป็นต้องยื่นขอสิทธิพิเศษจาก Huawei อ้างอิงจาก: วิธีการยื่นขอสิทธิพิเศษ
  • category String ตัวเลือก ตัวระบุฉากข้อความที่กำหนดเองของผู้ผลิต Huawei เพื่อปรับให้เข้ากับข้อกำหนดการแจ้งเตือนของอุปกรณ์ Huawei, Vivo, OPPO ฟิลด์นี้ใช้สำหรับระบุประเภทข้อความ “การแจ้งเตือนบนคลาวด์” เพื่อกำหนดวิธีการแจ้งเตือนและเร่งการส่งข้อความประเภทเฉพาะ
  • อ้างอิงค่าที่เกี่ยวข้องและคำอธิบาย: คำอธิบายค่าของ Huawei category, มาตรฐานการจัดประเภทของ Vivo
  • คำอธิบายค่าของ OPPO category
  • หมายเหตุ 1: Huawei กำหนดให้เสร็จสิ้น การยื่นขอสิทธิการจัดประเภทที่กำหนดเอง
  • หมายเหตุ 2: ตั้งแต่วันที่ 15 กันยายน 2023 Huawei ได้รวมการแจ้งเตือนบนคลาวด์และการแจ้งเตือนในเครื่องเข้ากับ มาตรฐานการจัดประเภทการแจ้งเตือนของ Huawei ผ่านบริการ Jiguang เมื่อเริ่มการส่งข้อมูล โปรดตรวจสอบให้แน่ใจว่าค่าฟิลด์นี้เป็นไปตามข้อกำหนดของ Huawei “ค่าการจัดประเภทการแจ้งเตือนบนคลาวด์ของ Huawei”
  • หมายเหตุ 3: กฎที่เกี่ยวข้องของ Vivo ดูได้ที่ เอกสารทางการของ Vivo
  • หมายเหตุ 4: OPPO จะเริ่มใช้กฎการจัดประเภทการแจ้งเตือนใหม่ตั้งแต่วันที่ 20 พฤศจิกายน 2024 รายละเอียดเพิ่มเติมดูได้ที่ เอกสารทางการของ OPPO
  • notify_level Int ตัวเลือก ระดับการแจ้งเตือนในแถบแจ้งเตือนของ OPPO
  • ค่าทางการ: 1 สำหรับแถบแจ้งเตือน, 2 สำหรับแถบแจ้งเตือน+หน้าจอล็อก, 16 สำหรับแถบแจ้งเตือน+หน้าจอล็อก+แบนเนอร์+การสั่น+เสียง
  • ฟิลด์ notify_level ใช้ได้เฉพาะกับข้อความ “บริการและการสื่อสาร”
  • เมื่อใช้พารามิเตอร์ notify_level จำเป็นต้องมีพารามิเตอร์ category รวมอยู่ด้วย
  • small_icon_uri String ตัวเลือก รูปแบบไอคอนเล็กของข้อความผู้ผลิต
  • ปัจจุบันรองรับผู้ผลิต Xiaomi/Huawei
  • ฟิลด์ผู้ผลิตมีความสำคัญ หากไม่ได้กรอกฟิลด์ผู้ผลิต จะใช้ small_icon ใน Android
  • Xiaomi รองรับ id ไอคอนใหญ่ของผู้ผลิต Xiaomi, media_id และเส้นทางในเครื่องของผู้ผลิต Huawei, Engagelab รองรับ (Xiaomi ไม่สนับสนุนไอคอนเล็กที่กำหนดเองอีกต่อไป ขอแนะนำให้นักพัฒนาไม่ใช้ฟังก์ชันที่เกี่ยวข้องกับไอคอนเล็กของ Xiaomi ต่อไป)
  • small_icon_color String ตัวเลือก สีของรูปแบบไอคอนเล็กของผู้ผลิต Xiaomi เพื่อปรับให้เข้ากับสีของรูปแบบไอคอนเล็กของข้อความผู้ผลิต Xiaomi หากไม่ได้กรอกค่าเริ่มต้นคือสีเทา (Xiaomi ไม่สนับสนุนไอคอนเล็กที่กำหนดเองอีกต่อไป ขอแนะนำให้นักพัฒนาไม่ใช้ฟังก์ชันที่เกี่ยวข้องกับไอคอนเล็กของ Xiaomi ต่อไป)
    big_text String ตัวเลือก รูปแบบข้อความใหญ่ของข้อความผู้ผลิต
  • เพื่อปรับให้เข้ากับรูปแบบข้อความใหญ่ของข้อความผู้ผลิต ปัจจุบันรองรับ Huawei/荣耀/Xiaomi/OPPO โดยที่ Xiaomi และ OPPO รองรับสูงสุด 128 ตัวอักษร
  • หากไม่ได้กรอกฟิลด์ผู้ผลิต ฟิลด์ big_text จะถูกกำหนดใน Android
  • ใช้เมื่อ style=1 ใน Android
  • only_use_vendor_style Boolean ตัวเลือก ใช้เฉพาะรูปแบบที่ตั้งค่าโดยช่องทางของผู้ผลิต ใช้เฉพาะรูปแบบที่ตั้งค่าโดยช่องทางของผู้ผลิต ไม่ใช้รูปแบบที่ตั้งค่าใน Android ค่าเริ่มต้นคือ false
  • true: ใช้เฉพาะรูปแบบที่ตั้งค่าโดยช่องทางของผู้ผลิต
  • false: สามารถใช้รูปแบบที่ตั้งค่าใน Android ได้
  • เพื่อให้สอดคล้องกับกลยุทธ์ช่องทางผู้ผลิตหลายรายและลดความซับซ้อนของการกำหนดค่า ฟิลด์ distribution_new ได้รับการปรับเปลี่ยนวิธีการกำหนดค่าดังนี้ การกำหนดค่าระดับผู้ผลิตในอดีตของคุณยังคงใช้ได้ แต่แนะนำให้ย้ายไปยังการกำหนดค่าระดับโลกเพื่อหลีกเลี่ยงความเสี่ยงด้านความเข้ากันได้ในอนาคต (กฎใหม่จะมีผลบังคับใช้ตั้งแต่วันที่ 3 เมษายน 2025):

    • ลำดับความสำคัญของการกำหนดค่า (กฎใหม่)
      • ลำดับความสำคัญที่หนึ่ง: การกำหนดค่าระดับโลก third_party_channel.distribution_new (วิธีใหม่ที่แนะนำ)
        ตัวอย่าง: "distribution_new": "pns_mtpush"
      • ลำดับความสำคัญที่สอง: การกำหนดค่าระดับผู้ผลิต third_party_channel.{vendor_key}.distribution_new (วิธีการที่เข้ากันได้ในอดีต)
        มีผลเฉพาะเมื่อไม่ได้ตั้งค่าระดับโลก
      • ไม่ได้กำหนดค่า: กลยุทธ์เริ่มต้น: pns_mtpush

    หมายเหตุเกี่ยวกับความเข้ากันได้

    • การรับประกันความเข้ากันได้: การกำหนดค่าระดับผู้ผลิตในอดีตยังคงมีผลเมื่อไม่ได้ตั้งค่าฟิลด์ระดับโลก เพื่อให้มั่นใจว่าไม่มีผลกระทบต่อบริการปัจจุบัน
    • การจัดการความขัดแย้ง: หากมีการกำหนดค่าทั้งระดับโลกและระดับผู้ผลิต จะอ่านค่าเฉพาะระดับโลก การกำหนดค่าระดับผู้ผลิตจะถูกละเว้น
    • แผนระยะยาว: การกำหนดค่าระดับผู้ผลิต distribution_new อาจถูกยกเลิกในเวอร์ชันอนาคต ขอแนะนำให้ปรับเปลี่ยนให้เร็วที่สุด
    ตัวอย่างคำขอ
    { "third_party_channel": { "distribution_new": "pns_mtpush", "xiaomi": { "channel_id": "*******", "small_icon_uri": "http://f6.market.xiaomi.com/download/MiPass/x/x.png", "small_icon_color": "#ABCDEF" }, "huawei": { "importance": "NORMAL", "small_icon_uri": "https://xx.com/xx.jpg", "only_use_vendor_style": true }, "oppo": { "channel_id": "*******", "large_icon": "3653918_5f92b5739ae676f5745bcbf4" }, "vivo": { "pushMode": 0 } } }
                  
                  {
        "third_party_channel": {
            "distribution_new": "pns_mtpush",
            "xiaomi": {
                "channel_id": "*******",
                "small_icon_uri": "http://f6.market.xiaomi.com/download/MiPass/x/x.png",
                "small_icon_color": "#ABCDEF"
            },
            "huawei": {
                "importance": "NORMAL",
                "small_icon_uri": "https://xx.com/xx.jpg",
                "only_use_vendor_style": true
            },
            "oppo": {
                "channel_id": "*******",
                "large_icon": "3653918_5f92b5739ae676f5745bcbf4"
            },
            "vivo": {
                "pushMode": 0
            }
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    Request_id

    รหัสคำขอ เป็นฟิลด์ที่ลูกค้ากำหนดเองซึ่งเป็นตัวเลือก ใช้เพื่อระบุคำขอที่กำลังดำเนินการในฝั่งไคลเอนต์ และส่งกลับในคำตอบ

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

    { "request_id":"12345678" } #### Return Example ```json { "msg_id": "1225764", "request_id": "12345678" }
                  
                  {
          "request_id":"12345678"
    }
    
    #### Return Example
    
    ```json
    {
        "msg_id": "1225764",
        "request_id": "12345678"
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตัวอย่างการส่งคืน

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

    Custom_args

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

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

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

    พารามิเตอร์การส่งคืน

    การส่งคืนที่สำเร็จ

    ฟิลด์ ประเภท ตัวเลือก คำอธิบาย
    request_id String Optional ID ที่กำหนดเองที่ส่งในคำขอจะถูกส่งคืนตามเดิมในการตอบกลับ
    message_id String Required ID ข้อความ ซึ่งระบุข้อความโดยเฉพาะเจาะจง
    < 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 Required รหัสข้อผิดพลาด ดู [รหัสข้อผิดพลาด](#Error code) คำอธิบาย
    message String Required รายละเอียดข้อผิดพลาด
    { "error":{ "code": 3002, "message": "Push.template field must be set correctly when type is template" } }
                  
                  {
        "error":{
        "code": 3002,
        "message": "Push.template field must be set correctly when type is template"
        }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    การส่งคืนการเรียก

    รหัสสถานะ HTTP

    เอกสารอ้างอิง:HTTP-Status-Code

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

    รหัส คำอธิบาย คำอธิบายโดยละเอียด รหัสสถานะ HTTP
    20101 พารามิเตอร์การส่งพุชไม่ถูกต้อง Registration ID ไม่ถูกต้องหรือไม่เป็นของ appkey ปัจจุบัน 400
    21001 รองรับเฉพาะวิธี HTTP Post ไม่รองรับวิธี Get 405
    21002 พารามิเตอร์ที่จำเป็นหายไป ต้องแก้ไข 400
    21003 ค่าพารามิเตอร์ไม่ถูกต้อง ต้องแก้ไข 400
    21004 การตรวจสอบล้มเหลว ต้องแก้ไข, ดู: การเรียกสำหรับการตรวจสอบ 401
    21005 เนื้อหาข้อความใหญ่เกินไป ต้องแก้ไข, ข้อจำกัดความยาว Notification+Message คือ 2048 ไบต์ 400
    21008 พารามิเตอร์ app_key ไม่ถูกต้อง ต้องแก้ไข, เปรียบเทียบ appkey ที่ส่งกับข้อมูลแอปพลิเคชันอย่างระมัดระวัง, ตรวจสอบช่องว่างเพิ่มเติม 400
    21009 ข้อผิดพลาดระบบภายใน โปรดติดต่อทีมสนับสนุน 400
    21011 ไม่พบเป้าหมายการส่งพุชที่เหมาะสม ตรวจสอบฟิลด์ 'to' 400
    21015 การตรวจสอบพารามิเตอร์คำขอล้มเหลว มีพารามิเตอร์ที่ไม่คาดคิด 400
    21016 การตรวจสอบพารามิเตอร์คำขอล้มเหลว ประเภทพารามิเตอร์ผิด หรือความยาวพารามิเตอร์เกินขีดจำกัด 400
    21030 การหมดเวลาบริการภายใน ลองใหม่ภายหลัง 503
    21050 พารามิเตอร์เหตุการณ์ live_activity ไม่ถูกต้อง พารามิเตอร์เหตุการณ์ต้องเป็น "start", "update", หรือ "end" 400
    21051 พารามิเตอร์ผู้ชม live_activity ไม่ถูกต้อง ในระหว่างการสร้าง live activity, เป้าหมายการส่งพุชสามารถเป็นได้เฉพาะการออกอากาศหรือการลงทะเบียน 400
    21052 พารามิเตอร์ attributes-type ของ live_activity ไม่ถูกต้อง เมื่อ event=start, attributes-type ไม่สามารถว่างเปล่า 400
    21053 พารามิเตอร์ content-state ของ live_activity ไม่ถูกต้อง Content-state ไม่สามารถว่างเปล่า 400
    21054 ข้อผิดพลาดพารามิเตอร์ live_activity, การแจ้งเตือนและข้อความที่กำหนดเองไม่สามารถอยู่ร่วมกันได้ voip, message, notification, live_activity ไม่สามารถอยู่ร่วมกันได้ 400
    21055 live_activity ios non-p8 certificate Live activity รองรับเฉพาะใบรับรอง p8 400
    21056 live_activity รองรับเฉพาะแพลตฟอร์ม ios พารามิเตอร์ platform ต้องเป็น ios 400
    21057 ข้อความ voip ไม่สามารถอยู่ร่วมกับประเภทข้อความอื่นได้ voip, message, notification, live_activity ไม่สามารถอยู่ร่วมกันได้ 400
    21058 voip รองรับเฉพาะแพลตฟอร์ม ios พารามิเตอร์ platform ต้องเป็น ios 400
    23006 ข้อผิดพลาดพารามิเตอร์ Fixed-rate push big_push_duration เกินค่าขั้นสูงสุด 1440 400
    23008 อินเทอร์เฟซถูกจำกัดอัตรา การส่งพุชอินเทอร์เฟซแอปพลิเคชันเดียวถึงขีดจำกัด (500 qps) 400
    23009 ข้อผิดพลาดสิทธิ์การส่งพุช ที่อยู่ IP การส่งพุชปัจจุบันไม่อยู่ในรายการที่อยู่ IP ของแอปพลิเคชัน 400
    27000 ข้อผิดพลาดหน่วยความจำภายใน โปรดลองใหม่ 500
    27001 ข้อผิดพลาดพารามิเตอร์ ข้อมูลการตรวจสอบว่างเปล่า 401
    27008 ข้อผิดพลาดพารามิเตอร์ การกระจายภายใน third_party_channel ไม่ว่างเปล่า แต่เนื้อหาการแจ้งเตือนของ notification ว่างเปล่า 401
    27009 ข้อผิดพลาดพารามิเตอร์ รูปแบบการกระจายใน third_party_channel ไม่ถูกต้องหรือว่างเปล่า 401
    21038 ข้อผิดพลาดสิทธิ์การส่งพุช VIP หมดอายุหรือไม่ได้เปิดใช้งาน 401
    21306 ข้อผิดพลาดพารามิเตอร์ ไม่สามารถส่งข้อความการแจ้งเตือนและข้อความที่กำหนดเองพร้อมกันได้ 401
    21059 ข้อผิดพลาดพารามิเตอร์ ประเภทข้อความนี้ไม่รองรับ big_push_duration 401

    ขีดจำกัดการส่งพุช

    ช่องทางผู้ผลิต ความยาวหัวเรื่อง ความยาวเนื้อหา คำที่อ่อนไหว หมายเหตุอื่น ๆ
    ช่องทาง Engagelab < 50 ตัวอักษร ไม่มีขีดจำกัด แต่จำกัดขนาดรวมของเนื้อหาข้อความที่ 4000 ไบต์ - ความยาว Notification ใน MTPush ถูกจำกัดที่ 4000 ไบต์.
    ช่องทาง Huawei < 40 ตัวอักษร < 1024 ตัวอักษร ห้ามเนื้อหาที่เกี่ยวข้องกับรัฐบาล, ผู้นำ, การแยกตัวของไต้หวัน, ฯลฯ สิทธิ์ [การแจ้งเตือนการตลาด] เริ่มต้นคือ การแจ้งเตือนแบบเงียบ; การส่งแบบเงียบไม่มีเสียง, การสั่น, หรือการแจ้งเตือนอื่น ๆ.
    ช่องทาง Glory ไม่มีขีดจำกัด แต่ขนาดรวมของเนื้อหาข้อความ < 4096 ไบต์ ไม่มีขีดจำกัด แต่ขนาดรวมของเนื้อหาข้อความ < 4096 ไบต์ ห้ามเนื้อหาที่เกี่ยวข้องกับรัฐบาล, ผู้นำ, การแยกตัวของไต้หวัน, ฯลฯ -
    ช่องทาง Phantom < 32 ตัวอักษร < 100 ตัวอักษร ห้ามอักขระพิเศษ เช่น "#" ข้อความอาจถูกเก็บไว้ใน [Meizu Message Box] ที่มุมขวาบนของโทรศัพท์ Meizu. ตัวอักษรจีนและอังกฤษนับเป็น 1 ตัวอักษร.
    ช่องทาง Xiaomi < 50 ตัวอักษร < 128 ตัวอักษร ห้ามอักขระพิเศษ เช่น "#", ">>" ข้อความอาจปรากฏในการแจ้งเตือนที่ไม่สำคัญในแถบการแจ้งเตือน. ตัวอักษรจีนและอังกฤษนับเป็น 1 ตัวอักษร.
    ช่องทาง OPPO < 32 ตัวอักษร < 200 ตัวอักษร ยังไม่มีคำอธิบาย สิทธิ์การแจ้งเตือนถูกปิดใช้งานโดยค่าเริ่มต้น. ตัวอักษรจีนและอังกฤษนับเป็น 1 ตัวอักษร.
    ช่องทาง vivo < 40 ตัวอักษร < 100 ตัวอักษร ห้ามอักขระพิเศษและข้อความที่เป็นทางการ เช่น ตัวเลขธรรมดา, ภาษาอังกฤษธรรมดา, ฯลฯ ตัวอักษรภาษาอังกฤษนับเป็น 1, จีนเป็น 2. สิทธิ์การแจ้งเตือนถูกปิดใช้งานโดยค่าเริ่มต้น. จำนวนข้อความปฏิบัติการจากอุปกรณ์เดียวกันถูกจำกัดที่ 5 ต่อวัน. ข้อความปฏิบัติการที่เหมือนกันไม่สามารถส่งจากอุปกรณ์เดียวกันในวันเดียวกันได้.
    ช่องทาง APNS < 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
    icon
    ติดต่อฝ่ายขาย