Tema
Yapılandırma
Tüm kurulum yolları (window.WebfonConfig, initWebfon(config), Webfon.init(config)) aynı yapılandırma nesnesini alır.
Parametreler
| Parametre | Tip | Varsayılan | Açıklama |
|---|---|---|---|
providerId | string | — (zorunlu) | Sağlayıcı kimliği. |
apiUrl | string | https://api.webfon.io | API kök adresi. |
getToken | ({jkt, providerId}) => Promise<string | null> | — | Widget'ın jkt'siyle çağrılır; self-signed soket token döndürür — üye girişi (bkz. Kimlik Doğrulama). |
target | HTMLElement | document.body | Widget host elemanının ekleneceği konteyner. |
onMessage | (message) => void | — | Soketten gelen bir sohbet mesajı düştüğünde tetiklenir (bkz. Olaylar). |
onAgentAvailable | (agent) => void | — | Bir temsilci uygun duruma (online/away) geçtiğinde tetiklenir (bkz. Olaylar). |
data-* ile verilemez
getToken / on* (fonksiyon) ve target (DOM elemanı) karmaşık değerler taşıdığından CDN data-* öznitelikleriyle verilemez. Bunlar için window.WebfonConfig veya initWebfon() kullanın. on* callback'leri ayrıca çalışma zamanında Webfon.onEvent() ile de kaydedilebilir.
Tam yapılandırma örneği
Tüm parametreleri içeren referans örnek (çoğu opsiyoneldir):
js
import { initWebfon } from 'webfon-client';
const widget = initWebfon({
// --- Zorunlu ---
providerId: 'PROVIDER_ID',
// --- Opsiyonel: bağlantı ---
apiUrl: 'https://api.webfon.com', // varsayılan: https://api.webfon.io
// --- Opsiyonel: üye girişi ---
getToken: async ({ jkt }) => { // backend'iniz soket token'ını imzalar
const res = await fetch('/api/webfon-token', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
credentials: 'include',
body: JSON.stringify({ jkt }),
});
return res.ok ? (await res.json()).token : null;
},
// --- Opsiyonel: yerleşim ---
target: document.getElementById('webfon-slot'), // varsayılan: document.body
// --- Opsiyonel: olaylar ---
onMessage: (m) => console.log('yeni mesaj', m),
onAgentAvailable: (a) => console.log('temsilci çevrimiçi', a),
});Görünüm ayarları burada değil
Renk, köşe konumu, offset, çalışma saatleri, kanal (sohbet/arama) açık-kapalı gibi görünüm ayarları embed kodunda değil, admin panelinde tutulur ve sunucudan gelir. Ayrıntılar için bkz. Admin Paneli.