SDK de JavaScript
El SDK de JavaScript es la opción recomendada para nuevas integraciones dirigidas por desarrolladores. Crea tu propia experiencia de chat mientras ChattyBox gestiona la recuperación, las citas, las conversaciones y el escalado. Si quieres una interfaz lista para usar sin añadir código a tu aplicación, utiliza en su lugar el widget alojado, que cuenta con soporte completo.
Antes de empezar
- Crea un proyecto e indexa tu contenido.
- Prueba preguntas representativas en el panel.
- Abre la pestaña Insertar del proyecto.
- Crea o selecciona una clave API pública del widget y configura sus orígenes permitidos.
- Copia la URL de la API del widget que aparece junto al fragmento de inserción.
Las claves API públicas del widget están diseñadas para aparecer en el código del navegador. Identifican un proyecto, pero no son credenciales de administración. Restringe las claves del navegador a los dominios que deban poder llamar a tu chatbot.
Instalación
bun add @openstaticfish/chattybox
El paquete es un cliente ESM para aplicaciones actuales de Node.js y de navegador que proporcionen fetch.
Enviar un mensaje
import { Chattybox } from '@openstaticfish/chattybox';
const chattybox = new Chattybox({
apiKey: import.meta.env.PUBLIC_CHATTYBOX_API_KEY,
baseUrl: import.meta.env.PUBLIC_CHATTYBOX_API_URL,
});
const answer = await chattybox.sendMessage({
message: 'How do I get started?',
});
console.log(answer.message);
console.log(answer.sources);
Asigna a PUBLIC_CHATTYBOX_API_URL la URL exacta de la API del widget que aparece en la pestaña Insertar. El SDK acepta tanto la raíz del despliegue como una URL que termine en /chat.
La respuesta contiene:
| Campo | Tipo | Descripción |
|---|---|---|
message | string | La respuesta generada. |
conversationId | string | Identificador utilizado para continuar esta conversación. |
sources | string[] | URL de las fuentes recuperadas para la respuesta. |
Continuar una conversación
Conserva el ID de conversación devuelto en el estado de tu interfaz y envíalo con el siguiente mensaje:
const followUp = await chattybox.sendMessage({
message: 'Can you explain the second step?',
conversationId: answer.conversationId,
});
No reutilices un mismo ID de conversación para visitantes distintos que no tengan relación entre sí. Para crear una conversación nueva, omite conversationId en su primer mensaje.
Gestionar errores
import { Chattybox, ChattyboxError } from '@openstaticfish/chattybox';
try {
await chattybox.sendMessage({ message: 'Where is the API reference?' });
} catch (error) {
if (error instanceof ChattyboxError) {
console.error(error.status, error.code, error.message);
}
}
ChattyboxError.status contiene el estado HTTP. code está presente cuando la API devuelve un código de error estructurado.
Compatibilidad avanzada con el widget
El SDK también expone getWidgetConfig() y getWidgetTranslations(locale). Estos métodos son útiles para clientes que quieran reproducir la configuración del proyecto y las etiquetas localizadas del widget alojado. Una interfaz totalmente personalizada puede ignorarlos.
Próximos pasos
- ¿Prefieres una interfaz mantenida que no requiera desarrollo? Instala
widget.js. - Personaliza la interfaz alojada en Personalización del widget alojado.
- Antes del lanzamiento, prueba las restricciones de origen, las respuestas alternativas, las citas y el comportamiento en dispositivos móviles con la lista de verificación para el lanzamiento.