API-referentie
Volledige referentie voor de Widget API en REST-endpoints.
Widget API
Het globale window.LaunchChatWidget-object biedt methoden om de widget programmatisch te besturen.
Methoden
open()Opent het chatvenster programmatisch.
window.LaunchChatWidget.open();close()Sluit het chatvenster.
window.LaunchChatWidget.close();destroy()Verwijdert de widget volledig van de pagina. Handig voor SPA's bij het navigeren.
window.LaunchChatWidget.destroy();init(config)Initialiseert de widget opnieuw met een nieuwe configuratie.
window.LaunchChatWidget.init({ widgetId: "new-widget-id" });on(event, callback)Abonneer op widgetgebeurtenissen.
window.LaunchChatWidget.on('message', (data) => {
console.log('New message:', data);
});off(event, callback)Afmelden van widgetgebeurtenissen.
Gebeurtenissen
| Gebeurtenis | Payload | Beschrijving |
|---|---|---|
open | { timestamp } | Chatvenster geopend |
close | { timestamp } | Chatvenster gesloten |
message | { content, role } | Bericht verzonden of ontvangen |
escalate | { email, message } | Gebruiker heeft menselijke ondersteuning aangevraagd |
feedback | { messageId, type } | Gebruiker heeft feedback gegeven (positief/negatief) |
REST API
POST /api/widget/chat
Verstuur een bericht en ontvang een AI-gegenereerd antwoord.
Verzoekinhoud
{
"widgetId": "string", // Required
"message": "string", // Required - user's question
"conversationId": "string", // Optional - for context
"visitorId": "string", // Optional - track visitor
"pageUrl": "string" // Optional - current page
}Antwoord
{
"conversationId": "uuid",
"messageId": "uuid",
"answer": "string",
"citations": [
{
"pageId": "string",
"pageTitle": "string",
"pageUrl": "string",
"excerpt": "string"
}
],
"relatedArticles": [...],
"confidenceScore": 0.85,
"wasRefused": false
}Foutcodes
| Code | Status | Beschrijving |
|---|---|---|
400 | Ongeldig verzoek | Verplichte velden ontbreken |
403 | Verboden | Domein niet in de toelatingslijst |
404 | Niet gevonden | Widget niet gevonden of inactief |
429 | Limiet bereikt | Berichtenquotum overschreden |
500 | Serverfout | Interne verwerkingsfout |
TypeScript-types
Kopieer deze types naar uw project voor volledige typeveiligheid:
interface LaunchChatConfig {
widgetId: string;
primaryColor?: string;
greeting?: string;
placeholder?: string;
position?: 'bottom-right' | 'bottom-left';
theme?: 'light' | 'dark' | 'auto';
}
interface WidgetAPI {
open(): void;
close(): void;
destroy(): void;
init(config: { widgetId: string }): Promise<void>;
on<E extends keyof WidgetEvents>(
event: E,
callback: (data: WidgetEvents[E]) => void
): void;
off<E extends keyof WidgetEvents>(
event: E,
callback: (data: WidgetEvents[E]) => void
): void;
}
interface WidgetEvents {
open: { timestamp: number };
close: { timestamp: number };
message: { content: string; role: 'user' | 'assistant' };
escalate: { email: string; message: string };
feedback: { messageId: string; type: 'positive' | 'negative' };
}
declare global {
interface Window {
LaunchChatConfig?: LaunchChatConfig;
LaunchChatWidget?: WidgetAPI;
}
}