Saltar al contenido principal

Widget y SDK de JavaScript

Una etiqueta de script en su sitio. El aspecto se configura en el Studio y se aplica en vivo; lo que el agente puede hacer queda fijado a una versión.

El widget es un componente web servido por su propia instancia, en /widget/widget.js. Se muestra con el diseño que usted defina para el agente, desde los colores y la forma hasta los textos, el lanzador y las zonas. Un diseño guardado se aplica de inmediato, sin volver a publicar el agente.

<script src="https://rikoo.example.com/widget/widget.js"
data-rikoo-token="rk_wgt_..." defer></script>

El Studio le entrega este fragmento en la página del agente: pestaña Deploy, Configure the widget y luego la sección Go live (puesta en servicio). El token público es su único atributo. Designa el despliegue, y el despliegue lleva el agente, el entorno y la versión fijada. El widget se comunica con la instancia que sirvió el script.

El comportamiento está congelado, la presentación es en vivo

Los dos cambian en momentos distintos, a propósito. Un cambio de color no exige una versión nueva del agente. Un cambio en lo que el agente puede hacer nunca llega a un visitante sin una versión nueva.

Controlarlo desde su página​

Más allá de una etiqueta de script, el SDK del paquete @rikoo/widget le entrega el widget como objeto. Puede abrirlo en un modo de visualización (compact, sidebar, fullScreen, modal), cerrarlo, ocultarlo, iniciar una conversación nueva, declarar la pantalla en la que está el visitante con setContext y suscribirse a sus eventos (open, close, conversation-started, turn-completed).

app.js
import rikoo from '@rikoo/widget';

const widget = rikoo.init({
token: 'rk_wgt_...',
appUrl: 'https://rikoo.example.com',
});

await widget.open.sidebar();
await widget.newConversation();

Las llamadas de visualización devuelven una promesa que se resuelve cuando el widget ha mostrado el estado pedido. La etiqueta de script expone el mismo objeto como window.rikoo, así que una página sin bundler también puede llamar a rikoo.init. Cada llamada a init con otro token monta un widget más en la página.

Saber quién habla​

Por defecto, un visitante es anónimo y su conversación pertenece a su navegador. Cada despliegue tiene un modo de identidad del visitante: anonymous (por defecto), verified o required. En los dos últimos, su backend firma una aserción de corta duración para cada usuario que ha iniciado sesión, y el widget la presenta antes de cada turno. Rikoo comprueba la firma con la clave pública que usted registró y vincula la conversación a ese usuario, en todos sus dispositivos. En modo verified, un visitante sin aserción válida continúa como anónimo. En modo required, se le rechaza.

Rikoo solo guarda la clave pública, y un visitante no puede hacerse pasar por otro editando la página.

Trabajar con la página anfitriona​

Se puede permitir al widget leer el campo que el visitante designa y escribir en él, rellenar un formulario, tomar una captura de la página u observar las llamadas de red de la página hacia los orígenes que usted liste. Cada capacidad está desactivada por defecto y necesita dos llaves:

  • El operador la activa en la configuración del agente (config.inPage). Queda congelada con la versión del agente, así que un cambio exige una versión nueva.
  • El visitante la desencadena con un gesto: poner el cursor en un campo, o elegir la entrada de captura y enviar la imagen previsualizada. No se lee nada antes de ese gesto.

La observación de red no tiene gesto del visitante, porque los datos pertenecen al sitio. La lista de orígenes la acota, y lo que sale del navegador se limita al método, el estado, el origen y la ruta, la duración y el tamaño, nunca la cadena de consulta ni las cabeceras. Un extracto acotado y depurado de los cuerpos solo se envía si el operador también lo permite. Rellenar un formulario transmite su estructura (tipos, etiquetas, campos obligatorios, listas de opciones), nunca lo que el visitante ya escribió, y el widget nunca envía el formulario. Una escritura en un campo se puede deshacer: el visitante recupera su texto con un clic.

Los orígenes permitidos se controlan en el servidor

Un widget solo responde para los orígenes que figuran en su despliegue. Copiar la etiqueta de script en otro dominio no funciona: la API comprueba la cabecera Origin de cada petición, no el script.

Licencia​

El widget, su SDK y las extensiones de navegador construidas a partir de él están bajo la Rikoo Widget License, no bajo la AGPL-3.0: integrar el widget nunca afecta a la licencia de su sitio. Es gratuito para todas las ediciones. Puede integrarlo, y adaptarlo con ese fin, en los sitios y aplicaciones que usted opere, para que sus visitantes se comuniquen con una instancia de Rikoo. No puede redistribuirlo como obra independiente, conectarlo a otro backend ni usarlo para crear un producto competidor.