Web SDK API

การตรวจสอบสิทธิ์

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

โครงสร้างข้อมูลการเริ่มต้น

interface MTInitInfo { website_push_id: string; code: number; master_secret: string; passwd: string; pull: number; regid: string; sess: string; tagalias: number; uid: number; vapid_pubkey: string; } type dataType = { code: number, content: string, message: string, }; interface InitType { appkey: string; // appkey ของแอปพลิเคชันที่นักพัฒนาลงทะเบียนบนแพลตฟอร์ม URORA จำเป็นต้องระบุ user_str: string; // ID ผู้ใช้ที่ไม่ซ้ำกัน จำเป็นต้องระบุ swUrl?: string; // ค่าเริ่มต้น "/sw.min." + sdkEnv.version + ".js" debugMode?: boolean; // ค่าเริ่มต้น false webSocketUrl?: string; // ใช้ baseUrl หากไม่มี fail?: (data: dataType | undefined) => void; // callback เมื่อเริ่มต้นล้มเหลว success?: (data: dataType | undefined) => void; // callback เมื่อเริ่มต้นสำเร็จ webPushcallback?: def; canGetInfo?: (d: MTInitInfo) => void; custom?: (Callback: () => void) => void; // callback เมื่อพร้อมใช้งานการแจ้งเตือนแบบกำหนดเอง เรียก Callback หลังการดำเนินการเสร็จสิ้น }
              
              interface MTInitInfo {
   website_push_id: string;
   code: number;
   master_secret: string;
   passwd: string;
   pull: number;
   regid: string;
   sess: string;
   tagalias: number;
   uid: number;
   vapid_pubkey: string;
}

type dataType = {
   code: number,
   content: string,
   message: string,
};

interface InitType {
   appkey: string; // appkey ของแอปพลิเคชันที่นักพัฒนาลงทะเบียนบนแพลตฟอร์ม URORA จำเป็นต้องระบุ
   user_str: string; // ID ผู้ใช้ที่ไม่ซ้ำกัน จำเป็นต้องระบุ
   swUrl?: string; // ค่าเริ่มต้น "/sw.min." + sdkEnv.version + ".js"
   debugMode?: boolean; // ค่าเริ่มต้น false
   webSocketUrl?: string; // ใช้ baseUrl หากไม่มี
   fail?: (data: dataType | undefined) => void; // callback เมื่อเริ่มต้นล้มเหลว
   success?: (data: dataType | undefined) => void; // callback เมื่อเริ่มต้นสำเร็จ
   webPushcallback?: def;
   canGetInfo?: (d: MTInitInfo) => void;
   custom?: (Callback: () => void) => void; // callback เมื่อพร้อมใช้งานการแจ้งเตือนแบบกำหนดเอง เรียก Callback หลังการดำเนินการเสร็จสิ้น
}

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

สามารถลงทะเบียน service worker ได้เพียงหนึ่งตัวภายในขอบเขตเดียวกัน หากการเริ่มต้นสำเร็จแต่รายงานข้อผิดพลาดเช่น "Failed to execute 'subscribe' on 'PushManager': Subscription failed - no active Service Worker" โปรดตรวจสอบความขัดแย้งกับ service worker อื่นๆ อาจจำเป็นต้องรวม service worker หรือแก้ไขขอบเขตของ service worker

การเริ่มต้น SDK

คำอธิบายอินเทอร์เฟซ

อินเทอร์เฟซสำหรับเริ่มต้น

window.MTpushInterface.init(Object:InitType)
              
              window.MTpushInterface.init(Object:InitType)

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

คำอธิบายพารามิเตอร์

  • รายละเอียดดูที่ /zh_CN/docs/web-push/sdk/web-sdk-api#Initialize data structure
  • คำอธิบายข้อมูล callback Object:
ชื่อพารามิเตอร์ ประเภทพารามิเตอร์ คำอธิบายพารามิเตอร์
code number รหัสผลลัพธ์ 0 หมายถึงสำเร็จ อื่นๆ หมายถึงล้มเหลว ดูที่ #error code
message string คำอธิบายผลลัพธ์
content string ข้อความความล้มเหลวเมื่อการลงทะเบียนล้มเหลว 1003

ตัวอย่างการเรียกใช้

MTpushInterface.init({ appkey: "xxx", user_str: "adminDemo", fail(data) { console.log("การสร้าง push ออนไลน์ล้มเหลว", data); }, success(data) { console.log("สร้าง push ออนไลน์สำเร็จ", data); }, webPushcallback(cod, tip) { console.log("รหัสสถานะและคำแนะนำที่ผู้ใช้ได้รับ", code, tip); }, //swUrl?: string; // ค่าเริ่มต้น "/sw.min." + sdkEnv.version + ".js" canGetInfo(d) { // ณ จุดนี้สามารถรับ RegId หรือรับข้อมูลทั้งหมดใน d console.log("รับ RegId", MTpushInterface.getRegistrationID(), d); // MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "swefgwwefwfwfwf" }); }, custom: (reqPermission) => { // เมื่อใช้การกำหนดค่าการแจ้งเตือนแบบกำหนดเอง ต้องเรียก reqPermission เพื่อขออนุญาตและกำหนดค่าสิทธิ์ รับฟังก์ชันการขออนุญาตใน callback แบบกำหนดเองและเรียก reqPermission โดยตรงเมื่อถึงเวลาที่เหมาะสมเพื่อขอสิทธิ์การแจ้งเตือน document.getElementById("xx")?.addEventListener("click", reqPermission); }, });
              
              MTpushInterface.init({
   appkey: "xxx",
   user_str: "adminDemo",
   fail(data) {
     console.log("การสร้าง push ออนไลน์ล้มเหลว", data);
   },
   success(data) {
     console.log("สร้าง push ออนไลน์สำเร็จ", data);
   },
   webPushcallback(cod, tip) {
     console.log("รหัสสถานะและคำแนะนำที่ผู้ใช้ได้รับ", code, tip);
   },
   //swUrl?: string; // ค่าเริ่มต้น "/sw.min." + sdkEnv.version + ".js"
   canGetInfo(d) {
     // ณ จุดนี้สามารถรับ RegId หรือรับข้อมูลทั้งหมดใน d
     console.log("รับ RegId", MTpushInterface.getRegistrationID(), d);
     // MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "swefgwwefwfwfwf" });
   },
   custom: (reqPermission) => {
    // เมื่อใช้การกำหนดค่าการแจ้งเตือนแบบกำหนดเอง ต้องเรียก reqPermission เพื่อขออนุญาตและกำหนดค่าสิทธิ์ รับฟังก์ชันการขออนุญาตใน callback แบบกำหนดเองและเรียก reqPermission โดยตรงเมื่อถึงเวลาที่เหมาะสมเพื่อขอสิทธิ์การแจ้งเตือน
    document.getElementById("xx")?.addEventListener("click", reqPermission);  },
});

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

รับ RegistrationID

คำอธิบายอินเทอร์เฟซ

เรียก API นี้เพื่อรับ RegistrationID ที่ตรงกับบัญชีปัจจุบัน ค่าที่ตรงกันจะถูกส่งกลับเมื่อการลงทะเบียนลายเซ็นเริ่มต้นสำเร็จเท่านั้น มิฉะนั้นจะส่งกลับสตริงว่าง ต้องเรียกใช้เมธอดนี้หลังจากเรียกใช้ callback canGetInfo แล้ว

window.MTpushInterface.getRegistrationID()
              
              window.MTpushInterface.getRegistrationID()

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

ตัวอย่างการเรียกใช้

var rid = window.MTpushInterface.getRegistrationID();
              
              var rid = window.MTpushInterface.getRegistrationID();

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

หยุด push

เรียก API นี้เพื่อตัดการเชื่อมต่อแบบถาวรกับแบ็กเอนด์และหยุดรับข้อความ push

window.MTpushInterface.mtPush.stopPush()
              
              window.MTpushInterface.mtPush.stopPush()

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

การตรวจสอบข้อความ push

คำอธิบายอินเทอร์เฟซ

แนะนำให้เรียกตัวตรวจสอบข้อความก่อนเริ่มต้น

window.MTpushInterface.onMsgReceive(fn)
              
              window.MTpushInterface.onMsgReceive(fn)

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

คำอธิบายพารามิเตอร์

ชื่อพารามิเตอร์ ประเภทพารามิเตอร์ คำอธิบายพารามิเตอร์
fn function ฟังก์ชันการรับและประมวลผลข้อความ

ตัวอย่างการเรียกใช้

window.MTpushInterface.onMsgReceive(function (res) { if(res.type===0){ // res.data.messages[] // res.data.messages[].msg_id // res.data.messages[].title // res.data.messages[].content // res.data.messages[].extras }else{ // res.data.title } });
              
              window.MTpushInterface.onMsgReceive(function (res) {
   if(res.type===0){
    // res.data.messages[]
    // res.data.messages[].msg_id
    // res.data.messages[].title
    // res.data.messages[].content
    // res.data.messages[].extras
   }else{
    // res.data.title
   }

});

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

ข้อมูลที่ส่งกลับ

ชื่อพารามิเตอร์ ประเภทพารามิเตอร์ คำอธิบายพารามิเตอร์
type number
  • 0: ข้อความช่องทาง Engagelab
  • 1: ข้อความช่องทางระบบ
  • data Object เนื้อหาข้อความ

    อาร์เรย์ข้อความช่องทาง Engagelab (messages)

    ชื่อพารามิเตอร์ ประเภทพารามิเตอร์ คำอธิบายพารามิเตอร์
    msg_id string ID ข้อความ
    title string หัวข้อข้อความ
    content string เนื้อหาข้อความ
    extras Object ฟิลด์เพิ่มเติมของข้อความ

    ข้อมูลข้อความช่องทางระบบ

    รองรับอินเทอร์เฟซ NotificationOptions ของ w3c ดูรายละเอียดที่ https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/notifications/NotificationOptions

    ตรวจสอบสถานะบริการ push

    window.MTpushInterface.getPushAuthority()
                  
                  window.MTpushInterface.getPushAuthority()
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    โครงสร้างข้อมูลที่ส่งกลับมีดังนี้:

    { mtPush: { code:1, //1 สำเร็จ, -1 กำลังเริ่มต้น, 0 ล้มเหลว msg:'success' }, webPush: { code:1, // 0 webpush ไม่พร้อมใช้งาน (เบราว์เซอร์ไม่รองรับ) 1 พร้อมใช้งาน 2 สิทธิ์ถูกปิดใช้งาน 3 สิทธิ์ยังไม่ได้รับการยืนยัน msg:'success' } }
                  
                  {
       mtPush: {
         code:1, //1 สำเร็จ, -1 กำลังเริ่มต้น, 0 ล้มเหลว
         msg:'success'
       },
       webPush: {
         code:1, // 0 webpush ไม่พร้อมใช้งาน (เบราว์เซอร์ไม่รองรับ) 1 พร้อมใช้งาน 2 สิทธิ์ถูกปิดใช้งาน 3 สิทธิ์ยังไม่ได้รับการยืนยัน
         msg:'success'
       }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    รับสิทธิ์การแจ้งเตือนของเบราว์เซอร์

    window.MTpushInterface.getWebPermission()
                  
                  window.MTpushInterface.getWebPermission()
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์ที่ส่งกลับ

    • granted : พร้อมใช้งาน
    • denied : ปิดใช้งาน
    • default: สิทธิ์ยังไม่ได้รับการยืนยัน

    รายงานข้อมูลข้อความที่กำหนดเอง

    หากต้องการทำสถิติข้อมูลของข้อความที่กำหนดเอง โปรดใช้อินเทอร์เฟซการรายงานแบบกำหนดเองเพื่อรายงานข้อมูล

    window.MTpushInterface.customClickReport('msg_id');//msg_id คือ msg_id ของข้อความที่กำหนดเอง
                  
                  
    window.MTpushInterface.customClickReport('msg_id');//msg_id คือ msg_id ของข้อความที่กำหนดเอง
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    การตรวจสอบการตัดการเชื่อมต่อ

    คำอธิบายอินเทอร์เฟซ

    หากเกิดการตัดการเชื่อมต่อหลังจากการเริ่มต้นสำเร็จ SDK จะพยายามเชื่อมต่อและลงชื่อใหม่โดยอัตโนมัติ แนะนำให้เรียกตัวตรวจสอบเหตุการณ์นี้ก่อนเริ่มต้น และเรียกการเริ่มต้นอีกครั้งหลังจากได้รับเหตุการณ์นี้

    window.MTpushInterface.mtPush.onDisconnect(fn)
                  
                  window.MTpushInterface.mtPush.onDisconnect(fn)
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตัวอย่างการเรียกใช้

    window.MTpushInterface.mtPush.onDisconnect(function () { });
                  
                  window.MTpushInterface.mtPush.onDisconnect(function () {
    });
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ยกเลิกการสมัครรับการแจ้งเตือนของเบราว์เซอร์

    ยกเลิกการสมัครรับการแจ้งเตือน สามารถใช้เมธอดนี้เมื่อไม่ต้องการรับการแจ้งเตือนเมื่อออกจากระบบบัญชีที่มีระดับความเป็นส่วนตัวสูง

    MTpushInterface. unSubscribe();
                  
                  MTpushInterface. unSubscribe();
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตั้งค่า TagsAlias

    window.MTpushInterface.setTagsAlias({})

    MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
                  
                  
    MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์

    ชื่อพารามิเตอร์ ประเภทพารามิเตอร์ คำอธิบายพารามิเตอร์
    tags string[] จำเป็นต้องระบุ ความยาวสูงสุดของอาร์เรย์คือ 1000 แต่ละองค์ประกอบมีได้สูงสุด 40 ตัวอักษร
    alias string จำเป็นต้องระบุ สูงสุด 40 ตัวอักษร

    คำอธิบายอินเทอร์เฟซ

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

    การแสดงคำแนะนำหมวดหมู่หลายครั้ง

    window.MTpushInterface.promptPushCategories();
                  
                  window.MTpushInterface.promptPushCategories();
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายอินเทอร์เฟซ

    หลังจากผู้ใช้สมัครรับการแจ้งเตือน push แล้ว นักพัฒนาสามารถแสดงคำแนะนำหมวดหมู่หลายครั้งตามต้องการ ต้องเรียกใช้หลังจากเริ่มต้น SDK แล้ว

    การเรียกกลับการแสดงข้อความพุช

    คำอธิบายอินเทอร์เฟซ

    แนะนำให้เรียกใช้ตัวฟังข้อความก่อนการเริ่มต้นใช้งาน

    ตัวอย่างการเรียกใช้

    window.MTpushInterface.onMsgDisplay((msgData) => {});
                  
                  window.MTpushInterface.onMsgDisplay((msgData) => {});
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์

    คำอธิบายพารามิเตอร์การเรียกกลับข้อความแจ้งเตือน msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; engagelab_appkey: string; engagelab_passwd: string; engagelab_uid: string; engagelab_url: string; type: string; // 0: ข้อความช่องทาง Engagelab 1: ข้อความช่องทางระบบ }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      engagelab_appkey: string;
      engagelab_passwd: string;
      engagelab_uid: string;
      engagelab_url: string;
      type: string; // 0: ข้อความช่องทาง Engagelab   1: ข้อความช่องทางระบบ
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์การเรียกกลับข้อความในแอป msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; type: string; }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      type: string;
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    หมายเหตุ:

    1. ในโหมดแก้ไข HTML สำหรับข้อความในแอป พารามิเตอร์การเรียกกลับ title และ content จะเป็นสตริงว่าง

    2. ข้อความที่ส่งผ่านช่องทางระบบในเบราว์เซอร์ Safari ไม่สามารถรับการเรียกกลับการแสดงผลได้

    การเรียกกลับการคลิกข้อความพุช

    คำอธิบายอินเทอร์เฟซ

    แนะนำให้เรียกใช้ตัวฟังข้อความก่อนการเริ่มต้นใช้งาน

    ตัวอย่างการเรียกใช้

    window.MTpushInterface.onMsgClick((msgData) => {});
                  
                  window.MTpushInterface.onMsgClick((msgData) => {});
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์

    คำอธิบายพารามิเตอร์การเรียกกลับข้อความแจ้งเตือน msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; engagelab_appkey: string; engagelab_passwd: string; engagelab_uid: string; engagelab_url: string; position: string; // ตำแหน่งการคลิก, 'msgBody' | Button ID type: string; // 0: ข้อความช่องทาง Engagelab 1: ข้อความช่องทางระบบ }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      engagelab_appkey: string;
      engagelab_passwd: string;
      engagelab_uid: string;
      engagelab_url: string;
      position: string; // ตำแหน่งการคลิก, 'msgBody' | Button ID
      type: string; // 0: ข้อความช่องทาง Engagelab   1: ข้อความช่องทางระบบ
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์การเรียกกลับข้อความในแอป msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; position: 'msgBody' | 'mainBtn' | 'subBtn' | 'closeBtn'; type: string; }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      position: 'msgBody' | 'mainBtn' | 'subBtn' | 'closeBtn';
      type: string;
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    หมายเหตุ:

    1. ในโหมดแก้ไข HTML สำหรับข้อความในแอป ค่าของ position จะถูกกำหนดโดยนักพัฒนา และพารามิเตอร์การเรียกกลับ title และ content จะเป็นสตริงว่าง
    2. ข้อความที่ส่งผ่านช่องทางระบบในเบราว์เซอร์ Safari ไม่สามารถรับการเรียกกลับการคลิกได้

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

    code message หมายเหตุ
    0 success การเรียกใช้สำเร็จ
    1000 unknown error ข้อผิดพลาดที่ไม่รู้จัก
    1001 initing , please try again later กำลังเริ่มต้น โปรดลองอีกครั้งในภายหลัง
    1002 invalid config ข้อผิดพลาดในการกำหนดค่าเริ่มต้น
    1003 init failed การเริ่มต้นล้มเหลว โปรดดูรายละเอียดที่คอนโซล
    1004 init timeout การเริ่มต้นเกินเวลาที่กำหนด
    1005 network error ข้อผิดพลาดเครือข่าย ไม่มีเครือข่ายหรือไม่สามารถเชื่อมต่อกับ websocket
    icon
    ติดต่อฝ่ายขาย