Logo Site EngageLab Mark Colored Transparent
Documentación

API del Web SDK

El SDK obtiene automáticamente las URL de conexión y de envío de estadísticas del centro de datos correspondiente al AppKey, incluidos Fráncfort y Virginia. No es necesario configurar manualmente baseUrl, report_url ni webSocketUrl.

Autenticación

Cuando el desarrollador realiza la inicialización, debe proporcionar la información necesaria. Esta estructura de datos la genera el servidor del desarrollador y se envía al navegador; se utiliza para la inicialización de MTpush, mediante la cual el desarrollador autoriza al navegador a ejecutarse. Los desarrolladores deben garantizar que todos los usuarios que puedan llamar para obtener estos datos sean usuarios legítimos.

Estructura de datos de inicialización

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 | { code: number; [key: string]: unknown }, message: string, }; interface InitType { report_url?: string; // Report URL, used for private cloud or custom deployments baseUrl?: string; // Server domain; when used together with report_url, the private cloud or custom deployment logic is used userLang?: string; // Defaults to navigator.language and must be a language value supported by the browser safari_url?: string; // Safari push test field appkey: string; // AppKey of the application registered on the EngageLab platform, required user_str: string; // Unique user identifier, required swUrl?: string; // Default: "/sw" + sdkEnv.prefix is_temporary?: "n" | "t"; // Default: "n" debugMode?: boolean; // Default: false webSocketUrl?: string; // If not provided, baseUrl will be used fail?: (data: dataType | undefined) => void; // Initialization failure callback success?: (data: dataType | undefined) => void; // Initialization success callback webPushcallback?: def; canGetInfo?: (d: MTInitInfo) => void; custom?: (Callback: () => void) => void; // Callback for custom prompts; call Callback to request notification permission maOpen?: boolean; // Whether to enable the ma-sdk module maChannel?: string; // Channel name used by ma-sdk; default: default-channel appName?: string; // Website name used by ma-sdk for reporting userIdentity?: { userId?: string; anonymousId?: string }; // User identity used by ma-sdk maCompletion?: (code: number, msg: string) => void; // ma-sdk initialization completion callback openUrl?: string; // Redirect link when clicking a notification encodeSwUrl?: boolean; // Whether to encode swUrl regidSearchPath?: string; // Page path for querying Registration ID }
              
              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 | { code: number; [key: string]: unknown },
  message: string,
};

interface InitType {
  report_url?: string; // Report URL, used for private cloud or custom deployments
  baseUrl?: string; // Server domain; when used together with report_url, the private cloud or custom deployment logic is used
  userLang?: string; // Defaults to navigator.language and must be a language value supported by the browser
  safari_url?: string; // Safari push test field
  appkey: string; // AppKey of the application registered on the EngageLab platform, required
  user_str: string; // Unique user identifier, required
  swUrl?: string; // Default: "/sw" + sdkEnv.prefix
  is_temporary?: "n" | "t"; // Default: "n"
  debugMode?: boolean; // Default: false
  webSocketUrl?: string; // If not provided, baseUrl will be used
  fail?: (data: dataType | undefined) => void; // Initialization failure callback
  success?: (data: dataType | undefined) => void; // Initialization success callback
  webPushcallback?: def;
  canGetInfo?: (d: MTInitInfo) => void;
  custom?: (Callback: () => void) => void; // Callback for custom prompts; call Callback to request notification permission
  maOpen?: boolean; // Whether to enable the ma-sdk module
  maChannel?: string; // Channel name used by ma-sdk; default: default-channel
  appName?: string; // Website name used by ma-sdk for reporting
  userIdentity?: { userId?: string; anonymousId?: string }; // User identity used by ma-sdk
  maCompletion?: (code: number, msg: string) => void; // ma-sdk initialization completion callback
  openUrl?: string; // Redirect link when clicking a notification
  encodeSwUrl?: boolean; // Whether to encode swUrl
  regidSearchPath?: string; // Page path for querying Registration ID
}

            
Este bloque de código se muestra en una ventana flotante
  • Descripción de parámetros:
    • openUrl: URL que se abre al hacer clic en una notificación
      • Si no se especifica URL al enviar la notificación, se usa este valor como enlace de redirección;
      • Si no se define, por defecto se redirige al dominio de integración;
      • En integración multi-dominio, este parámetro permite redirigir a la URL correspondiente;
    • encodeSwUrl: Si se debe codificar swUrl
      • Útil cuando swUrl contiene caracteres especiales (p. ej. @) y el servidor restringe el acceso a esa URL, lo que puede hacer fallar el registro del Service Worker; añadir mecanismo de re-registro y codificar swUrl en los reintentos.
    • regidSearchPath: Ruta de la página para consultar el Registration ID; por defecto /engagelab/regid. Ver Guía de consulta del Registration ID.

Solo se puede registrar un service worker dentro del mismo ámbito (scope). Cuando, al informar de una inicialización correcta, se muestre un error similar a "Failed to execute 'subscribe' on 'PushManager': Subscription failed - no active Service Worker", se deben comprobar posibles conflictos con otros service workers. Es posible que sea necesario fusionar los service workers o resolver el ámbito (scope) del service worker.

Inicialización del SDK

Descripción de la interfaz

Inicializar la interfaz.

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

            
Este bloque de código se muestra en una ventana flotante

Descripción de parámetros

Nombre del parámetro Tipo de parámetro Descripción del parámetro
code number Código devuelto; 0 significa éxito, otros valores indican fallo; consulte el código de error
message string Descripción del resultado
content string | Object Detalles del error. Si falla la inicialización (1003), puede ser un objeto con el código de error del servidor code; consulte Códigos de error de inicialización del servidor.

Ejemplo de llamada

const appkey = "your_appkey"; const userStr = "adminDemo"; MTpushInterface.init({ appkey: appkey, user_str: userStr, fail(data) { console.log("Online push setup failed", data); }, success(data) { console.log("Online push setup successful", data); }, webPushcallback(code, tip) { console.log("Status code and message", code, tip); }, canGetInfo(data) { // RegId is available here, and initialization config data can also be read from data. console.log("Obtained RegId", MTpushInterface.getRegistrationID(), data); // MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "swefgwwefwfwfwf" }); }, custom: (requestPermission) => { // For custom prompt settings, call requestPermission during an appropriate user action to request notification permission. document.getElementById("subscribe")?.addEventListener("click", () => { if (Notification.permission === "default") { requestPermission(); } else if (Notification.permission === "denied") { console.log("Notification permission is denied and cannot be requested"); } else { console.log("Notification permission has already been granted"); } }); }, });
              
              const appkey = "your_appkey";
const userStr = "adminDemo";

MTpushInterface.init({
  appkey: appkey,
  user_str: userStr,
  fail(data) {
    console.log("Online push setup failed", data);
  },
  success(data) {
    console.log("Online push setup successful", data);
  },
  webPushcallback(code, tip) {
    console.log("Status code and message", code, tip);
  },
  canGetInfo(data) {
    // RegId is available here, and initialization config data can also be read from data.
    console.log("Obtained RegId", MTpushInterface.getRegistrationID(), data);
    // MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "swefgwwefwfwfwf" });
  },
  custom: (requestPermission) => {
    // For custom prompt settings, call requestPermission during an appropriate user action to request notification permission.
    document.getElementById("subscribe")?.addEventListener("click", () => {
      if (Notification.permission === "default") {
        requestPermission();
      } else if (Notification.permission === "denied") {
        console.log("Notification permission is denied and cannot be requested");
      } else {
        console.log("Notification permission has already been granted");
      }
    });
  },
});

            
Este bloque de código se muestra en una ventana flotante

Obtener RegistrationID

Descripción de la interfaz

Se debe llamar a esta API para obtener el RegistrationID correspondiente a la cuenta actual. El valor correspondiente solo se devuelve después de que la firma de inicialización sea correcta; de lo contrario, se devuelve una cadena vacía. Este método debe llamarse después de que se active el callback canGetInfo.

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

            
Este bloque de código se muestra en una ventana flotante

Ejemplo de llamada

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

            
Este bloque de código se muestra en una ventana flotante

Detener push

Se debe llamar a esta API para desconectar la conexión push persistente establecida con el backend y dejar de recibir mensajes push.

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

            
Este bloque de código se muestra en una ventana flotante

Monitorización de mensajes push

Descripción de la interfaz

Se recomienda llamar al listener de mensajes antes de la inicialización.

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

            
Este bloque de código se muestra en una ventana flotante

Descripción de parámetros

Nombre del parámetro Tipo de parámetro Descripción del parámetro
fn function Función de recepción y procesamiento de mensajes

Ejemplo de llamada

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
   }
});

            
Este bloque de código se muestra en una ventana flotante

Datos devueltos

Nombre del parámetro Tipo de parámetro Descripción del parámetro
type number
  • 0: Mensaje del canal de Engagelab
  • 1: Mensaje del canal del sistema
  • data Object Contenido del mensaje

    Array de mensajes del canal de Engagelab (messages)

    Nombre del parámetro Tipo de parámetro Descripción del parámetro
    msg_id string ID del mensaje
    title string Título del mensaje
    content string Contenido del mensaje
    extras Object Campos adicionales del mensaje

    Datos de mensajes del canal del sistema

    Se admite la interfaz w3c NotificationOptions; para más información, consulte MDN Web Docs.

    Comprobar el estado del servicio push

    window.MTpushInterface.getPushAuthority()
                  
                  window.MTpushInterface.getPushAuthority()
    
                
    Este bloque de código se muestra en una ventana flotante

    La estructura de datos devuelta es la siguiente:

    { mtPush: { code:1, //1 is successful, -1 is in initialization, 0 is failed msg:'success' }, webPush: { code:1, // 0 webpush is not available (browser does not support it) 1 is available 2 permission is disabled 3 permission is not confirmed msg:'success' } }
                  
                  {
       mtPush: {
         code:1, //1 is successful, -1 is in initialization, 0 is failed
         msg:'success'
       },
       webPush: {
         code:1, // 0 webpush is not available (browser does not support it) 1 is available 2 permission is disabled 3 permission is not confirmed
         msg:'success'
       }
    }
    
                
    Este bloque de código se muestra en una ventana flotante

    Códigos de error del objeto WebPush

    Los siguientes códigos de estado corresponden a getPushAuthority().webPush.code y webPushcallback(code, tip). Son independientes de los códigos del callback de inicialización fail.

    code msg Observaciones
    0 The browser does not support the Notifications API El navegador no admite la API de notificaciones
    1 Notification permissions available, message subscription successful. Permisos de notificación disponibles; suscripción de mensajes correcta
    2 Notification permissions have been disabled, message subscription failed. Los permisos de notificación se han deshabilitado; la suscripción de mensajes ha fallado
    3 Notification permissions have not been confirmed, message subscription has not been performed. Los permisos de notificación no se han confirmado; no se ha realizado la suscripción de mensajes
    -1 The browser does not support Service Worker. El navegador no admite Service Worker
    -2 Service Worker does not support HTTP. Service Worker no admite el protocolo HTTP
    -3 Service Worker registration failed. Fallo en el registro de Service Worker
    -4 Notification permission is available, but message subscription failed. Los permisos de notificación están disponibles, pero la suscripción de mensajes ha fallado
    -5 Subscription has been canceled Se ha cancelado la suscripción

    Obtener permisos de notificación del navegador

    window.MTpushInterface.getWebPermission()
                  
                  window.MTpushInterface.getWebPermission()
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción de parámetros devueltos

    • granted : Disponible
    • denied : Deshabilitado
    • default: Permiso no confirmado

    Reporte de mensajes personalizados

    Si es necesario realizar estadísticas de mensajes personalizados, utilice las API de reporte personalizado.

    Reporte de visualización:

    window.MTpushInterface.customDisplayReport('msg_id'); // msg_id es el msg_id del mensaje personalizado
                  
                  window.MTpushInterface.customDisplayReport('msg_id'); // msg_id es el msg_id del mensaje personalizado
    
                
    Este bloque de código se muestra en una ventana flotante

    Reporte de clic:

    window.MTpushInterface.customClickReport('msg_id'); // msg_id es el msg_id del mensaje personalizado
                  
                  window.MTpushInterface.customClickReport('msg_id'); // msg_id es el msg_id del mensaje personalizado
    
                
    Este bloque de código se muestra en una ventana flotante

    Monitorización de desconexión

    Descripción de la interfaz

    Si se produce una desconexión después de una inicialización correcta, el SDK intentará automáticamente volver a conectarse y firmar.
    Se recomienda llamar a este listener de eventos antes de la inicialización y volver a llamar a la inicialización después de recibir este evento.

    window.MTpushInterface.mtPush.onDisconnect(fn)
                  
                  window.MTpushInterface.mtPush.onDisconnect(fn)
    
                
    Este bloque de código se muestra en una ventana flotante

    Ejemplo de llamada

    window.MTpushInterface.mtPush.onDisconnect(function () { });
                  
                  window.MTpushInterface.mtPush.onDisconnect(function () {
    });
    
                
    Este bloque de código se muestra en una ventana flotante

    Cancelar la suscripción del navegador

    Cancelar la suscripción a las notificaciones. Este método puede utilizarse cuando no se necesita recibir notificaciones al cerrar sesión en una cuenta o cuando el nivel de privacidad de algunas cuentas es alto.

    MTpushInterface.unSubscribe();
                  
                  MTpushInterface.unSubscribe();
    
                
    Este bloque de código se muestra en una ventana flotante

    Establecer TagsAlias

    MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
                  
                  MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción de parámetros

    Nombre del parámetro Tipo de parámetro Descripción del parámetro
    tags string[] Obligatorio; la longitud máxima del array es 1000 y cada elemento tiene un máximo de 40 caracteres
    alias string Obligatorio; máximo 40 caracteres

    Descripción de la interfaz

    Los desarrolladores pueden establecer tags y alias a través de esta interfaz. Tenga en cuenta que esta interfaz utiliza una lógica de sobrescritura: establecer una cadena vacía eliminará los tags y alias existentes.

    Establecer idioma de notificación

    MTpushInterface.setLan(lan)

    MTpushInterface.setLan(lan, (err) => { alert(err ? "Error al establecer el idioma de notificación: " + err : "Idioma de notificación establecido correctamente"); });
                  
                  MTpushInterface.setLan(lan, (err) => {
      alert(err ? "Error al establecer el idioma de notificación: " + err : "Idioma de notificación establecido correctamente");
    });
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción de parámetros

    Nombre del parámetro Tipo de parámetro Descripción del parámetro
    Parámetro 1 string Obligatorio. Parámetro de idioma en formato ISO 639-1, por ejemplo "cn" para chino, "en" para inglés y "ja" para japonés
    Parámetro 2 Function Callback opcional. Se llama cuando la configuración finaliza. El parámetro err contiene información de error si existe; si no existe, significa que la operación fue correcta

    Descripción de la interfaz

    Los desarrolladores pueden usar esta API para establecer manualmente el idioma de notificación. Una vez establecida correctamente, el SDK guarda el idioma. Si no se pasa userLang durante la siguiente inicialización, se usará primero el idioma guardado localmente.

    Visualización múltiple de indicaciones por categoría

    window.MTpushInterface.promptPushCategories();
                  
                  window.MTpushInterface.promptPushCategories();
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción de la interfaz

    Tras suscribirse el usuario a las notificaciones push, los desarrolladores pueden mostrar las indicaciones por categoría varias veces según sea necesario. Esto debe llamarse después de que el SDK esté inicializado.

    Compatibilidad de callbacks en Safari

    A partir del SDK v3.3.8, el canal push se selecciona según el tipo de suscripción actual de Safari. La disponibilidad de los callbacks depende del tipo de suscripción, del estado de la página cuando ocurre el evento y del momento en que se registra el listener:

    Suscripción o estado de la página Callback de visualización Callback de clic
    Suscripción Legacy Safari Website Push con un deviceToken antiguo existente No hay un callback de visualización fiable en la página No hay un callback de clic fiable en la página
    Suscripción W3C Push con una página abierta y controlada por el Service Worker cuando ocurre el evento Puede activarse al llegar el mensaje Puede activarse cuando el usuario hace clic en la notificación
    Suscripción W3C Push sin una página que pueda recibir mensajes cuando ocurre el evento No se activa ni se reproduce después de abrir una página No se activa; la notificación puede abrir la página de destino, pero el callback no se reproduce allí
    Listener registrado después del evento No se reproduce No se reproduce

    Los callbacks de la página, la visualización de la notificación del sistema y las estadísticas del servidor son mecanismos independientes. La ausencia de un callback en la página no significa que la notificación no se haya mostrado ni que el servidor no haya registrado datos de entrega, visualización o clic.

    Callback de visualización de mensajes push

    Descripción de la interfaz

    Se recomienda llamar al listener de mensajes antes de la inicialización.

    Ejemplo de llamada

    window.MTpushInterface.onMsgDisplay((msgData) => {});
                  
                  window.MTpushInterface.onMsgDisplay((msgData) => {});
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción de parámetros

    Descripción del parámetro de callback de mensajes de notificación msgData:

    { engagelab_ntf_or_msg: number; engagelab_appkey: string; engagelab_passwd: string; engagelab_uid: number; engagelab_m_str: string; engagelab_a_str: string; type: number; title: string; content: string; msg_id: string; }
                  
                  {
      engagelab_ntf_or_msg: number;
      engagelab_appkey: string;
      engagelab_passwd: string;
      engagelab_uid: number;
      engagelab_m_str: string;
      engagelab_a_str: string;
      type: number;
      title: string;
      content: string;
      msg_id: string;
    }
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción del parámetro de callback de mensajes in-app msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; type: number; }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      type: number;
    }
    
                
    Este bloque de código se muestra en una ventana flotante

    Estos tipos corresponden a la plantilla estándar de mensajes dentro de la aplicación de la consola, donde type es el número 0. Una plantilla HTML personalizada define sus propios datos de callback.

    Nota:

    1. En el modo de edición HTML para mensajes in-app, los parámetros de callback title y content son cadenas vacías.
    2. Los callbacks de Safari están sujetos a las condiciones de compatibilidad anteriores. Registra el listener antes de inicializar el SDK y asegúrate de que exista una página controlada por el Service Worker cuando ocurra el evento.

    Callback de clic de mensajes push

    Descripción de la interfaz

    Se recomienda llamar al listener de mensajes antes de la inicialización.

    Ejemplo de llamada

    window.MTpushInterface.onMsgClick((msgData) => {});
                  
                  window.MTpushInterface.onMsgClick((msgData) => {});
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción de parámetros

    Descripción del parámetro de callback de mensajes de notificación msgData:

    { engagelab_ntf_or_msg: number; engagelab_appkey: string; engagelab_passwd: string; engagelab_uid: number; engagelab_m_str: string; engagelab_a_str: string; type: number; title: string; content: string; msg_id: string; target_event: string | null; position: string; // Click position, 'msgBody' | Button ID }
                  
                  {
      engagelab_ntf_or_msg: number;
      engagelab_appkey: string;
      engagelab_passwd: string;
      engagelab_uid: number;
      engagelab_m_str: string;
      engagelab_a_str: string;
      type: number;
      title: string;
      content: string;
      msg_id: string;
      target_event: string | null;
      position: string; // Click position, 'msgBody' | Button ID
    }
    
                
    Este bloque de código se muestra en una ventana flotante

    Descripción del parámetro de callback de mensajes in-app msgData:

    { position: 'msgBody' | 'mainBtn' | 'subBtn' | 'closeBtn'; msg_id: number; title: string; content: string; extras: object | null; ntf_or_msg: number; strategy: object | null; target_event: unknown[]; type: number; icon: string; }
                  
                  {
      position: 'msgBody' | 'mainBtn' | 'subBtn' | 'closeBtn';
      msg_id: number;
      title: string;
      content: string;
      extras: object | null;
      ntf_or_msg: number;
      strategy: object | null;
      target_event: unknown[];
      type: number;
      icon: string;
    }
    
                
    Este bloque de código se muestra en una ventana flotante

    Nota:

    1. En el modo de edición HTML para mensajes in-app, el valor de position lo determina el desarrollador y los parámetros de callback title y content son cadenas vacías.
    2. Los callbacks de Safari están sujetos a las condiciones de compatibilidad anteriores. Si ninguna página puede recibir mensajes cuando se hace clic en la notificación, abrir la página de destino no reproduce el callback de clic.

    Código de error

    La tabla siguiente muestra los valores externos de data.code en los callbacks de inicialización. Los fallos específicos del servidor aparecen en data.content.code. Un mismo número puede tener significados diferentes en estos dos campos.

    code message Significado
    0 success Llamada correcta
    1000 unknown error Error desconocido. Si content es do not support websocket, el navegador no admite WebSocket.
    1001 initing , please try again later Inicializando; inténtelo de nuevo más tarde
    1002 invalid config Error en la configuración inicial
    1003 init failed La inicialización ha fallado. Revise content del callback y la consola; consulte Códigos de error de inicialización del servidor para interpretar content.code.
    1004 init timeout Tiempo de espera de inicialización agotado
    1005 network error Error de red; sin red o no se puede conectar a WebSocket
    1006 failed to get baseUrl and reportUrl La solicitud de la API get-webaddr ha fallado; consulte el campo content del callback para obtener detalles
    1007 authentication failed La autenticación ha fallado. content contiene la descripción del error de la API de autenticación o información del error de red; consulte Fallos de autenticación.
    1008 region restricted Restricción regional. El SDK convierte el código 7017 de la API de autenticación en este código; content es REGION_RESTRICTED.

    Códigos de error de inicialización del servidor

    Si falla la inicialización, el SDK devuelve un código externo mediante fail, por ejemplo data.code === 1003. Cuando data.content es un objeto, data.content.code contiene el código específico del servidor y data.content.desc contiene la descripción, si está disponible.

    Validación de inicialización y errores del servicio

    content.code Significado Acción recomendada
    4000 Parámetros de inicialización no válidos Revise AppKey, user_str y los parámetros de autenticación. Utilice los datos de autenticación obtenidos por el SDK sin modificarlos manualmente.
    4003 La firma de autenticación ha caducado o la marca de tiempo está fuera del intervalo válido Obtenga nuevos datos de autenticación e inicialice de nuevo. Revise el reloj del servidor que genera los datos; la marca de tiempo no debe diferir más de 30 minutos de la hora actual del servidor.
    4005 La verificación de la firma ha fallado Compruebe que AppKey corresponde a los datos de autenticación. Si usa un servicio de autenticación propio, revise el algoritmo de firma y la configuración de la clave.
    4006 La aplicación no existe Revise AppKey, si se ha eliminado la aplicación y si la conexión utiliza su centro de datos.
    4008 El servicio VIP de WebPush de la aplicación ha caducado y el servidor rechaza la inicialización Revise el plan de WebPush asociado a este AppKey. Renueve el servicio e inicialice de nuevo. Si la consola sigue mostrando un servicio activo, contacte con soporte técnico para revisar los derechos de servicio del AppKey.
    5000 Error interno del servidor Inténtelo más tarde. Si persiste, facilite a soporte técnico AppKey, la hora del incidente y los detalles completos del error.
    5001 Servidor ocupado o tiempo de espera agotado al obtener el resultado del registro Espere antes de reintentar y evite inicializaciones repetidas frecuentes. Si persiste, contacte con soporte técnico.

    Por ejemplo, data.code === 1003 junto con data.content.code === 4008 indica que la inicialización falló porque caducó el servicio VIP. Revise tanto el code externo como el motivo específico en content.

    Códigos transmitidos por el servicio de registro

    Cuando la inicialización requiere registrar al usuario, el servidor también transmite los códigos del servicio de registro. La tabla enumera las correspondencias de compatibilidad conservadas por el servidor; las respuestas concretas dependen de la versión del servicio de registro.

    content.code Significado Acción recomendada
    11 Error interno del servidor Inténtelo más tarde; si persiste, contacte con soporte técnico.
    999 Parámetros no válidos Revise los parámetros de inicialización y los datos de autenticación.
    1002 Parámetros no válidos Revise los parámetros de inicialización y los datos de autenticación.
    1005 AppKey no encontrado Revise AppKey y el centro de datos de la aplicación.
    1006 La aplicación no existe Revise AppKey y el estado de la aplicación.
    1008 La aplicación no existe Revise AppKey y el estado de la aplicación.
    1009 La aplicación no admite la plataforma actual Confirme que la aplicación de este AppKey tiene WebPush configurado.
    1015 Se ha superado el número máximo de usuarios Contacte con soporte técnico para revisar el límite de usuarios de la aplicación.
    4001 AppKey no existe o la verificación de la firma ha fallado Revise AppKey, los datos de autenticación y la configuración de la firma.
    4002 El usuario no ha iniciado sesión Inicialice el SDK de nuevo; si persiste, contacte con soporte técnico.
    4004 El registro ha fallado Conserve los detalles completos y vuelva a intentarlo más tarde; si persiste, contacte con soporte técnico.

    Por ejemplo, el valor externo data.code === 1008 indica una restricción regional, mientras que el código externo 1003 con el valor interno data.content.code === 1008 indica que la aplicación no existe.

    Fallos de autenticación

    Si falla la API de autenticación, el SDK copia message de la respuesta en la cadena data.content. No devuelve el code original como content.code. Consulte los códigos originales siguientes en la respuesta de la solicitud de autenticación (/v1/auth) desde las herramientas de desarrollo del navegador.

    code original de la API de autenticación data.code del callback del SDK Significado y acción recomendada
    400 1007 La validación de negocio ha fallado. APPKEY_NOT_FOUND indica que no se encontró AppKey. También puede faltar el dominio de integración o la cabecera Origin, o no coincidir el dominio solicitado con la configuración de la aplicación. Revise la descripción de content; en extensiones de Chrome, revise también el ID de extensión configurado.
    2002 1007 Error interno del servidor; content del callback es inner err. Inténtelo más tarde y contacte con soporte técnico si persiste.
    2003 1007 Parámetros no válidos; content del callback es param invalid. Compruebe que se proporcionaron AppKey y user_str.
    7017 1008 Acceso restringido por región; content del callback es REGION_RESTRICTED. Contacte con soporte técnico para revisar las restricciones regionales de la cuenta.

    Notificación de suscripción caducada

    El servidor envía 4107 (subscribe expired) mediante el comando WebSocket expired cuando caduca la suscripción push del navegador. Es una notificación del sistema posterior a la inicialización; no es un error del callback de inicialización fail. El listener mtPush.onExpired del SDK recibe la notificación, pero su callback no incluye el código de error.

    Icon Solid Transparent White Qiyu
    Contactar con ventas