Web SDK Chrome Extension API
การเริ่มต้นใช้งาน SDK
คำอธิบายอินเทอร์เฟซ
เพื่อป้องกันผู้ใช้ที่ไม่ถูกต้องจำนวนมาก แนะนำให้ใช้ user_str
ที่ไม่ซ้ำและสม่ำเสมอระหว่างการเริ่มต้น คุณสามารถสร้าง user_str
จากลายนิ้วมือเบราว์เซอร์
ตัวอย่างการเรียกใช้
if (window.MTpushInterfaceExtension) {
window.MTpushInterfaceExtension.initSdk({
appkey: '',
user_str: '',
});
}
คำอธิบายพารามิเตอร์
interface InitType {
appkey: string; // Appkey ของแอปพลิเคชันที่นักพัฒนาลงทะเบียนบนแพลตฟอร์ม EngageLab จำเป็นต้องระบุ
user_str: string; // ตัวระบุผู้ใช้ที่ไม่ซ้ำกัน จำเป็นต้องระบุ
}
รับผลลัพธ์
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
// การเริ่มต้น SDK สำเร็จ
case 'MTPUSH_INIT_SDK_SUCCESS':
console.log(message.data);
break;
// การเริ่มต้น SDK ล้มเหลว
case 'MTPUSH_INIT_SDK_FAIL':
console.log(message.data);
break;
}
});
โครงสร้างของ message.data
มีดังนี้:
interface MessageData {
code: number; // รหัสสถานะ 0 หมายถึงสำเร็จ, อื่นๆ หมายถึงล้มเหลว ดูรหัสข้อผิดพลาด
message: string; // คำอธิบายผลลัพธ์
content: string; // ส่งกลับข้อมูลความล้มเหลวเมื่อการลงทะเบียนล้มเหลวด้วยรหัสข้อผิดพลาด 1003
}
หากการรวมส่วนขยายล้มเหลวเนื่องจากระยะเวลาทดลองใช้หมดอายุหรือแผนการชำระเงินของแอปพลิเคชัน กระบวนการเริ่มต้นจะลองใหม่อีกครั้งเมื่อเปิดหน้าใหม่หรือรีเฟรชหน้าที่มีอยู่หลังจาก 4 ชั่วโมง
รับ RegistrationID
คำอธิบายอินเทอร์เฟซ
ไม่จำเป็นต้องเรียกใช้ API ด้วยตนเองเพื่อรับ regid
หลังจากที่ SDK เริ่มต้นสำเร็จ คุณสามารถรับ regid
จากข้อมูลที่ส่งกลับโดยเหตุการณ์ MTPUSH_GET_MT_INIT_INFO
ตัวอย่างการเรียกใช้
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_GET_MT_INIT_INFO':
console.log(message.data.regid);
break;
}
});
ผลลัพธ์ที่ส่งกลับ
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;
}
หยุดการแจ้งเตือน Push
คำอธิบายอินเทอร์เฟซ
เรียกใช้ API นี้เพื่อตัดการเชื่อมต่อแบบถาวรกับแบ็กเอนด์และหยุดรับข้อความ Push
ตัวอย่างการเรียกใช้
window.MTpushInterfaceExtension.stopPush();
ตรวจสอบสถานะบริการ Push
คำอธิบายอินเทอร์เฟซ
ดึงข้อมูลสถานะของบริการ Push
ตัวอย่างการเรียกใช้
// เรียกใช้หลังจาก SDK เริ่มต้นสำเร็จ
window.MTpushInterfaceExtension.getPushAuthority();
// รับฟังข้อความเพื่อรับสถานะบริการ Push
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_GET_PUSH_AUTHORITY':
console.log('สถานะบริการ Push: ', message.data);
break;
}
});
ผลลัพธ์ที่ส่งกลับ
{
"mtPush": {
"code": 1, // 1: สำเร็จ, -1: กำลังเริ่มต้น, 0: ล้มเหลว
"msg": "การเริ่มต้นช่องทาง MTpush สำเร็จ!"
},
"webPush": {
"code": 1, // 0: Webpush ไม่พร้อมใช้งาน (ไม่รองรับ), 1: พร้อมใช้งาน, 2: ไม่พร้อมใช้งาน
"msg": "การแจ้งเตือนพร้อมใช้งาน"
}
}
ตั้งค่าแท็กและนามแฝง
คำอธิบายอินเทอร์เฟซ
นักพัฒนาสามารถใช้อินเทอร์เฟซนี้เพื่อตั้งค่าและลบแท็กภายใต้นามแฝงที่ระบุ อินเทอร์เฟซนี้ใช้ตรรกะการเขียนทับ การตั้งค่าสตริงว่างสำหรับแท็กจะลบแท็กที่มีอยู่
ตัวอย่างการเรียกใช้
window.MTpushInterfaceExtension.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
คำอธิบายพารามิเตอร์
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
tags | string[] | จำเป็นต้องระบุ ความยาวสูงสุดของอาร์เรย์คือ 1000 แต่ละองค์ประกอบสามารถมีได้สูงสุด 40 ตัวอักษร |
alias | string | จำเป็นต้องระบุ สูงสุด 40 ตัวอักษร |
ผลลัพธ์ที่ส่งกลับ
รับฟังข้อความเพื่อรับผลลัพธ์ของการตั้งค่าอินเทอร์เฟซ:
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_SET_TAGS_ALIAS_SUCCESS':
console.log('การตั้งค่าสำเร็จ');
break;
case 'MTPUSH_SET_TAGS_ALIAS_FAIL':
console.log('การตั้งค่าล้มเหลว', message.data); // ข้อมูลความล้มเหลว: string[]
break;
}
});
การรายงานข้อความที่กำหนดเอง
คำอธิบายอินเทอร์เฟซ
หากคุณต้องการรายงานข้อความที่กำหนดเองสำหรับสถิติข้อมูล ให้ใช้อินเทอร์เฟซการรายงานที่กำหนดเองนี้
ตัวอย่างการเรียกใช้
window.MTpushInterfaceExtension.customClickReport('msg_id'); // msg_id คือ ID ของข้อความที่กำหนดเอง
การเรียกกลับการแสดงข้อความพุช
คำอธิบายอินเทอร์เฟซ
หลังจากการเริ่มต้น SDK
เสร็จสมบูรณ์ ให้ฟังเหตุการณ์ MTPUSH_MSG_CALLBACK_DISPLAY
เพื่อรับข้อมูลการเรียกกลับการแสดงข้อความพุช
ตัวอย่างการใช้งาน
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_MSG_CALLBACK_DISPLAY':
console.log(message.data);
break;
}
});
คำอธิบายพารามิเตอร์
คำอธิบายของพารามิเตอร์การเรียกกลับ message.data
:
{
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: ข้อความช่องทางระบบ
}
การเรียกกลับการคลิกข้อความพุช
คำอธิบายอินเทอร์เฟซ
หลังจากการเริ่มต้น SDK
เสร็จสมบูรณ์ ให้ฟังเหตุการณ์ MTPUSH_MSG_CALLBACK_CLICK
เพื่อรับข้อมูลการเรียกกลับการคลิกข้อความพุช
ตัวอย่างการใช้งาน
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_MSG_CALLBACK_CLICK':
console.log(message.data);
break;
}
});
คำอธิบายพารามิเตอร์
{
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: ข้อความช่องทางระบบ
}
หมายเหตุ: ภายใต้ช่องทาง EngageLab พารามิเตอร์
title
และcontent
ในการเรียกกลับการคลิกจะส่งคืนได้สูงสุด 30 ตัวอักษร
รหัสข้อผิดพลาด
รหัส | ข้อความ | หมายเหตุ |
---|---|---|
0 | success | การเรียกใช้สำเร็จ |
1000 | unknown error | ข้อผิดพลาดที่ไม่รู้จัก |
1001 | initing , please try again later | กำลังเริ่มต้น กรุณาลองอีกครั้งในภายหลัง |
1002 | invalid config | การกำหนดค่าเริ่มต้นไม่ถูกต้อง |
1003 | init failed | การเริ่มต้นล้มเหลว ตรวจสอบบันทึกคอนโซลสำหรับรายละเอียด |
1004 | init timeout | การเริ่มต้นเกินเวลาที่กำหนด |
1005 | network error | ข้อผิดพลาดเครือข่าย ไม่มีเครือข่ายหรือไม่สามารถเชื่อมต่อกับ WebSocket |