Skip to main content
El SDK 2.0 se autentica con un token de licencia. Las plataformas nativas también pueden usar appId + appKey para autenticación en línea. En Web nunca debes incrustar appKey en el JavaScript del frontend.
Completa primero la Suscripción: vincula los identificadores de tu app en la Consola (Bundle ID / nombre de paquete / dominio) y activa un plan.

Nativo (Android / iOS / macOS / Windows / Linux / Flutter)

Pasa una de las siguientes opciones al crear el motor: Prioridad: si licenseToken no está vacío, el SDK valida ese token en local y no llama a la red con appId / appKey.
Recomendado (la misma idea que en Web): guarda appId / appKey en tu servidor, genera un licenseToken de corta duración y envíalo a la app. Establece platform en la petición firmada para que coincida con el cliente (ios / android / macos / windows / linux). Consulta Web → Proxy del servidor más abajo. appId + appKey directo y .lic sin conexión siguen admitidos.
iOS / macOS
Android
C++ (Windows / Linux)
Flutter
Alternativa en línea en plataformas nativas:
Prefiere incluir el .lic sin conexión como asset de la app y cargarlo en tiempo de ejecución, en lugar de hardcodearlo en el código fuente. Cómo obtenerlo: Licencia sin conexión más abajo.

Web

El SDK del navegador no tiene campos appId / appKey. El motor solo acepta licenseToken y lo verifica en local. Obtén el token desde tu servidor antes de init().

Flujo recomendado

  1. Crea una app en la Consola, vincula tu dominio Web y copia appId / appKey (consulta Suscripción)
  2. Guarda las claves en tu backend; expón un endpoint (por ejemplo POST /api/facebetter/auth)
  3. Tu backend firma una petición a https://facebetter.pixpark.net/facebetter/v2/auth y devuelve el cuerpo de respuesta en bruto a la página
  4. Pasa esa cadena a EngineConfig.licenseToken y luego llama a init()
El demo oficial (demo/web/react) usa el mismo patrón: frontend en src/fetchLicenseToken.js, proxy del servidor en api/facebetter/auth.js.
No pongas appKey en un bundle de frontend. Web no admite archivos .lic sin conexión. Los tokens en línea caducan en minutos: obtén uno nuevo antes de volver a crear el motor.

Frontend

Proxy del servidor (ejemplo Node)

Guarda FB_APP_ID / FB_APP_KEY en variables de entorno. Coloca esto en Express / Fastify / una función serverless:
En otros lenguajes, implementa los mismos pasos: construye la cadena a firmar → HMAC-SHA256 (hex) → POST al upstream → entrega el cuerpo al frontend. Referencia ejecutable: GitHub Demo api/facebetter/auth.js.

Campos de la petición upstream

Si tiene éxito, el upstream devuelve JSON (incluido un campo token). Puedes reenviar el texto de la respuesta tal cual, o extraer solo la cadena token: el SDK acepta ambos.

Licencia sin conexión (nativo)

La Consola ya no ofrece descargas de .lic sin conexión en autoservicio. Para obtener una licencia sin conexión, contacta con ventas o un administrador: Cuando recibas el archivo, pasa el contenido completo como licenseToken / license_token. La validez coincide con tu suscripción actual; tras renovar o cambiar de plan, solicita un archivo nuevo y sustitúyelo en la app.

Notas

  • La licencia sin conexión está vinculada a los identificadores de app configurados en la Consola; si no coinciden, la validación falla.
  • Si no ha caducado: las funciones siguen tu plan de suscripción.
  • Si ha caducado: el motor aún puede inicializarse, pero las capacidades vuelven al plan Free (prueba con marca de agua, sin callbacks de puntos clave). Renueva y solicita una licencia nueva.
  • Web no puede usar licencias sin conexión; debe completar una ruta de autenticación v2 en línea.

Eventos del motor

Escucha los resultados de licencia e inicialización con onEngineEvent / Flutter engine.events: