Документация WikilectWidget API
Для разработчиков
Этот раздел предназначен для разработчиков, которые хотят расширить функциональность виджета Wikilect или интегрировать его с собственными системами. Здесь описаны все доступные методы API, события и примеры их использования.
Оглавление
- Введение
- Инициализация
- Методы API
- Управление пропсами
- Управление чатом
- Управление опциями
- Управление сообщениями
- Управление пользователем
- Дополнительные функции
- Колбеки
Введение
WikilectWidget API предоставляет интерфейс для взаимодействия с виджетом Wikilect. API реализован как синглтон, доступный через глобальный объект window.WikilectWidget
.
Инициализация
API автоматически инициализируется при загрузке скрипта. Отдельная инициализация не требуется.
window.WikilectWidget;
Методы API
Управление пропсами
GetProps(): sharedPropsType
Возвращает текущие пропсы виджета (raw).
const currentProps = window.WikilectWidget.GetProps();
Управление чатом
ChatOpen()
Открывает чат, регистрирует пользователя в виджете, закрывает список опций(телефон/тг/чат).
window.WikilectWidget.ChatOpen();
ChatClose()
Закрывает чат и закрывает список опций(телефон/тг/чат).
window.WikilectWidget.ChatClose();
ChatReconnect()
Переподключение к WebSocket чата.
window.WikilectWidget.ChatReconnect();
Управление опциями
OptionsOpen()
Открывает список опций (телеграм/телефон/чат) и вызывает регистрацию пользователя.
window.WikilectWidget.OptionsOpen();
OptionsClose()
Закрывает список опций с тг/телефон/чат.
window.WikilectWidget.OptionsClose();
Управление сообщениями
UserSendMessage(message: string)
Отправляет сообщение в чат.
window.WikilectWidget.UserSendMessage("Привет!");
Управление пользователем
UserRegistration(force?: boolean)
Регистрирует пользователя в виджете. При force=true перерегистрирует даже если уже зарегистрирован.
Регистрация пользователя если таковой нет.
window.WikilectWidget.UserRegistration();
Принудительная регистрация, cбрасывает текущую регистрацию.
window.WikilectWidget.UserRegistration(true);
UpdateUserUtm(utmParams: Record<string, string>)
Обновляет UTM-метки для текущего пользователя(если в localStorage есть запись wikilect-user-${widget_id}
).
window.WikilectWidget.UpdateUserUtm({
utm_source: "google",
utm_medium: "cpc"
});
UserLogOut()
Разлогинивает пользователя из виджета.
window.WikilectWidget.UserLogOut();
Дополнительные функции
OpenTelegramLink()
Открывает ссылку на Telegram(вместе с utm-метками) и вызывает регистрацию пользователя.
window.WikilectWidget.OpenTelegramLink();
OpenPhoneNumber()
Открывает номер телефона и вызывает регистрацию пользователя.
window.WikilectWidget.OpenPhoneNumber();
RemoveUtm()
Удаляет UTM-метки.
window.WikilectWidget.RemoveUtm();
SetWelcomeText()
Показывает приветственный текст и закрывает список опций(телефон/тг/чат).
window.WikilectWidget.SetWelcomeText();
Хранение данных
API использует localStorage для хранения следующих данных:
wikilect-jwt-${widget_id}
: JWT токен пользователяwikilect-utm-${widget_id}
: UTM меткиwikilect-user-${widget_id}
: ID пользователя, максимальная длина 20wikilect-welcome-${widget_id}
: Статус приветственного сообщения
События
API использует внутреннюю систему событий для коммуникации между компонентами. Основные типы событий:
- ChatOpen
- ChatClose
- OptionsOpen
- OptionsClose
- UserSendMessage
- ChatReconnect
- OpenTelegramLink
- OpenPhoneNumber
- UserRegistration
- SetWelcomeText
Колбеки
API предоставляет систему колбеков для отслеживания различных событий виджета.
Управление колбеками
on(event: string, callback: (data?: unknown) => void)
Добавляет колбек для определенного события.
window.WikilectWidget.on("onWidgetOpen", () => {
console.log("Виджет открыт");
});
off(event: string, callback: (data?: unknown) => void)
Удаляет ранее добавленный колбек.
const callback = () => console.log("Виджет открыт");
window.WikilectWidget.on("onWidgetOpen", callback);
// ... позже
window.WikilectWidget.off("onWidgetOpen", callback);
Доступные события для колбеков
onWidgetOpen
: Вызывается при открытии виджета с списоком опций (телеграм/телефон/чат).
window.WikilectWidget.on("onWidgetOpen", () => {
console.log("Пользователь открыл список опций/кликнул по виджету");
});
onWidgetClose
: Вызывается при закрытии виджета с списоком опций (телеграм/телефон/чат).
window.WikilectWidget.on("onWidgetClose", () => {
console.log("Пользователь закрыл список опций/кликнул по виджету");
});
onBotMessageReceived
: Вызывается при получении сообщения от бота в чате.
window.WikilectWidget.on("onBotMessageReceived", (message) => {
console.log("Получено сообщение от бота:", message);
});
onManagerMessageReceived
: Вызывается при получении сообщения от менеджера в чате.
window.WikilectWidget.on("onManagerMessageReceived", (message) => {
console.log("Получено сообщение от менеджера:", message);
});
onError
: Вызывается при возникновении ошибок в чате.
window.WikilectWidget.on("onError", (error) => {
console.log("Произошла ошибка:", error);
});
onTelegramClick
: Вызывается при клике на ссылку Telegram
window.WikilectWidget.on("onTelegramClick", () => {
console.log("Пользователь кликнул по кнопке телеграм");
});
onPhoneClick
: Вызывается при клике на номер телефона
window.WikilectWidget.on("onPhoneClick", () => {
console.log("Пользователь кликнул по кнопке телефона");
});
onUserRegistered
: Вызывается при регистрации пользователя в виджете.
window.WikilectWidget.on("onUserRegistered", (userData) => {
console.log("Пользователь зарегистрирован:", userData);
});
onChatStatus
: Вызывается когда чат виджета или открытый чат подключен к websocket и проведена авторизация.
window.WikilectWidget.on("onChatStatus", (status: boolean) => {
console.log("Статус чата:", status);
});
onChatOpen
: Вызывается при открытии чата.
window.WikilectWidget.on("onChatOpen", () => {
console.log("Пользователь открыл чат");
});
onChatClose
: Вызывается при закрытии чата.
window.WikilectWidget.on("onChatClose", () => {
console.log("Пользователь закрыл чат");
});
onUserSentMessage
: Вызывается когда сообщение пользователя отправлено в чат.
window.WikilectWidget.on("onUserSentMessage", (message) => {
console.log("Сообщение отправлено:", message);
});
onChatError
: Вызывается при возникновении ошибки при генерации ответа.
window.WikilectWidget.on("onChatError", (error) => {
console.log("Ошибка генерации ответа:", error);
});
onChatReconnect
: Вызывается при переподключении к чату.
window.WikilectWidget.on("onChatReconnect", () => {
console.log("Переподключение к чату");
});
onUserLogOut
: Пользователь разлогинился в чате из-за ошибки или вызова api.
window.WikilectWidget.on("onUserLogOut", () => {
console.log("Пользователь разлогинился в чате");
});