API Referansı

Widget API ve REST endpoint'leri için eksiksiz referans.

Widget API

Global window.LaunchChatWidget nesnesi, widget'ı programatik olarak kontrol etmek için yöntemler sağlar.

Yöntemler

open()

Sohbet penceresini programatik olarak açar.

window.LaunchChatWidget.open();
close()

Sohbet penceresini kapatır.

window.LaunchChatWidget.close();
destroy()

Widget'ı sayfadan tamamen kaldırır. SPA'larda sayfa değiştirirken kullanışlıdır.

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

Widget'ı yeni bir yapılandırmayla yeniden başlatır.

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

Widget olaylarına abone olun.

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

Widget olay aboneliğini iptal edin.

Olaylar

OlayPayloadAçıklama
open{ timestamp }Sohbet penceresi açıldı
close{ timestamp }Sohbet penceresi kapatıldı
message{ content, role }Mesaj gönderildi veya alındı
escalate{ email, message }Kullanıcı insan desteği talep etti
feedback{ messageId, type }Kullanıcı geri bildirim verdi (olumlu/olumsuz)

REST API

POST /api/widget/chat

Bir mesaj gönderin ve yapay zeka tarafından üretilen yanıt alın.

İstek Gövdesi

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

Yanıt

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

Hata Kodları

KodDurumAçıklama
400Hatalı İstekGerekli alanlar eksik
403YasaklandıAlan adı izin listesinde değil
404BulunamadıWidget bulunamadı veya pasif
429Hız SınırıMesaj kotası aşıldı
500Sunucu HatasıDahili işleme hatası

TypeScript Türleri

Tam tür güvenliği için bu türleri projenize kopyalayın:

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