API reference

Kompletní reference pro Widget API a REST endpointy.

Widget API

Globální objekt window.LaunchChatWidget poskytuje metody pro programové ovládání widgetu.

Metody

open()

Programově otevře okno chatu.

window.LaunchChatWidget.open();
close()

Zavře okno chatu.

window.LaunchChatWidget.close();
destroy()

Kompletně odstraní widget ze stránky. Užitečné pro SPA při navigaci pryč.

window.LaunchChatWidget.destroy();
init(config)

Znovu inicializuje widget s novou konfigurací.

window.LaunchChatWidget.init({ widgetId: "new-widget-id" });
on(event, callback)

Přihlásí se k odběru událostí widgetu.

window.LaunchChatWidget.on('message', (data) => {
  console.log('New message:', data);
});
off(event, callback)

Odhlásí se z odběru událostí widgetu.

Události

UdálostPayloadPopis
open{ timestamp }Okno chatu otevřeno
close{ timestamp }Okno chatu zavřeno
message{ content, role }Zpráva odeslána nebo přijata
escalate{ email, message }Uživatel požádal o lidskou podporu
feedback{ messageId, type }Uživatel poskytl zpětnou vazbu (pozitivní/negativní)

REST API

POST /api/widget/chat

Odešle zprávu a obdrží AI-generovanou odpověď.

Tělo požadavku

{
  "widgetId": "string",      // Required
  "message": "string",       // Required - user's question
  "conversationId": "string", // Optional - for context
  "visitorId": "string",     // Optional - track visitor
  "pageUrl": "string"        // Optional - current page
}

Odpověď

{
  "conversationId": "uuid",
  "messageId": "uuid",
  "answer": "string",
  "citations": [
    {
      "pageId": "string",
      "pageTitle": "string",
      "pageUrl": "string",
      "excerpt": "string"
    }
  ],
  "relatedArticles": [...],
  "confidenceScore": 0.85,
  "wasRefused": false
}

Chybové kódy

KódStavPopis
400Chybný požadavekChybí povinná pole
403ZakázánoDoména není na seznamu povolených
404NenalezenoWidget nenalezen nebo je neaktivní
429Překročen limitPřekročena kvóta zpráv
500Chyba serveruInterní chyba zpracování

TypeScript typy

Zkopírujte tyto typy do svého projektu pro plnou typovou bezpečnost:

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