API de l'extension Chrome Web SDK
Initialiser le SDK
Description de l'interface
Pour éviter un grand nombre d'utilisateurs non valides, il est recommandé d'utiliser un user_str unique et cohérent lors de l'initialisation. Vous pouvez générer le user_str à partir de l'empreinte du navigateur.
Exemple d'appel
if (window.MTpushInterfaceExtension) {
window.MTpushInterfaceExtension.initSdk({
appkey: '',
user_str: '',
});
}
Description des paramètres
interface InitType {
appkey: string; // L'appkey de l'application enregistrée par le développeur sur la plateforme EngageLab. Obligatoire.
user_str: string; // Identifiant utilisateur unique. Obligatoire.
}
Obtenir les résultats
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
// Initialisation du SDK réussie
case 'MTPUSH_INIT_SDK_SUCCESS':
console.log(message.data);
break;
// Échec de l'initialisation du SDK
case 'MTPUSH_INIT_SDK_FAIL':
console.log(message.data);
break;
}
});
La structure de message.data est la suivante :
interface MessageData {
code: number; // Code d'état. 0 indique le succès, les autres indiquent un échec. Voir les codes d'erreur.
message: string; // Description du résultat.
content: string; // Retourne les informations d'échec lorsque l'inscription échoue avec le code d'erreur 1003.
}
Si l'intégration de l'extension échoue en raison de l'expiration de l'essai gratuit ou de l'offre payante de l'application, le processus d'initialisation sera réessayé lors de l'ouverture d'une nouvelle page ou du rafraîchissement d'une page existante après 4 heures.
Obtenir le RegistrationID
Description de l'interface
Il n'est pas nécessaire d'appeler manuellement une API pour obtenir le regid. Après l'initialisation réussie du SDK, vous pouvez obtenir le regid à partir des informations retournées par l'événement MTPUSH_GET_MT_INIT_INFO.
Exemple d'appel
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_GET_MT_INIT_INFO':
console.log(message.data.regid);
break;
}
});
Résultat retourné
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;
}
Arrêter les notifications push
Description de l'interface
Appelez cette API pour déconnecter la connexion push persistante établie avec le backend et arrêter de recevoir des messages push.
Exemple d'appel
window.MTpushInterfaceExtension.stopPush();
Vérifier l'état du service push
Description de l'interface
Récupérez les informations d'état du service de notifications push.
Exemple d'appel
// À appeler après l'initialisation réussie du SDK
window.MTpushInterfaceExtension.getPushAuthority();
// Écoutez les messages pour obtenir l'état du service push
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_GET_PUSH_AUTHORITY':
console.log('Statut du service push : ', message.data);
break;
}
});
Résultat retourné
{
"mtPush": {
"code": 1, // 1 : Succès, -1 : Initialisation en cours, 0 : Échec
"msg": "Initialisation du canal MTpush réussie !"
},
"webPush": {
"code": 1, // 0 : Webpush non disponible (non supporté), 1 : Disponible, 2 : Indisponible
"msg": "Notification disponible"
}
}
Définir les tags et alias
Description de l'interface
Les développeurs peuvent utiliser cette interface pour définir et supprimer des tags sous un alias spécifique. Cette interface utilise une logique d'écrasement. Définir une chaîne vide pour les tags supprimera les tags existants.
Exemple d'appel
window.MTpushInterfaceExtension.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
Description des paramètres
| Paramètre | Type | Description |
|---|---|---|
| tags | string[] | Obligatoire. Longueur maximale du tableau : 1000. Chaque élément peut contenir jusqu'à 40 caractères. |
| alias | string | Obligatoire. 40 caractères maximum. |
Résultat retourné
Écoutez les messages pour obtenir le résultat de la configuration de l'interface :
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_SET_TAGS_ALIAS_SUCCESS':
console.log('Configuration réussie');
break;
case 'MTPUSH_SET_TAGS_ALIAS_FAIL':
console.log('Échec de la configuration', message.data); // Informations d'échec : string[]
break;
}
});
Rapport de message personnalisé
Description de l'interface
Si vous devez signaler des messages personnalisés à des fins de statistiques, utilisez cette interface de rapport personnalisé.
Exemple d'appel
window.MTpushInterfaceExtension.customClickReport('msg_id'); // msg_id est l'ID du message personnalisé
Callback d'affichage des messages push
Description de l'interface
Après l'initialisation du SDK, écoutez l'événement MTPUSH_MSG_CALLBACK_DISPLAY pour recevoir les informations de callback d'affichage des messages push.
Exemple d'utilisation
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_MSG_CALLBACK_DISPLAY':
console.log(message.data);
break;
}
});
Description des paramètres
Description du paramètre de callback 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 : message du canal Engagelab 1 : message du canal système
}
Callback de clic sur un message push
Description de l'interface
Après l'initialisation du SDK, écoutez l'événement MTPUSH_MSG_CALLBACK_CLICK pour recevoir les informations de callback de clic sur les messages push.
Exemple d'utilisation
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_MSG_CALLBACK_CLICK':
console.log(message.data);
break;
}
});
Description des paramètres
{
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; // Position du clic, 'msgBody' | ID du bouton
type: string; // 0 : message du canal Engagelab 1 : message du canal système
}
Remarque : Sous le canal EngageLab, les paramètres
titleetcontentdans le callback de clic retourneront au maximum 30 caractères.
Codes d'erreur
| Code | Message | Remarques |
|---|---|---|
| 0 | success | Appel réussi |
| 1000 | unknown error | Erreur inconnue |
| 1001 | initing , please try again later | Initialisation en cours, veuillez réessayer plus tard |
| 1002 | invalid config | Configuration d'initialisation invalide |
| 1003 | init failed | Échec de l'initialisation. Consultez les logs de la console pour plus de détails. |
| 1004 | init timeout | Délai d'initialisation dépassé |
| 1005 | network error | Erreur réseau. Pas de réseau ou impossible de se connecter au WebSocket |

