UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

63 lines (62 loc) 3.73 kB
import { AppContext, BotController } from '../../../index'; import { BasePlatform } from '../Base/Base'; import { IViberContent } from './interfaces/IViberPlatform'; /** * Адаптер, обеспечивающий поддержку платформы Viber. Позволяет разрабатывать чат-ботов для Viber на TypeScript с использованием кросс-платформенного функционала: обработка текстовых запросов, работа с карточками и кнопками. * * Подключение адаптера не требует изменения существующей бизнес-логики: после интеграции * все команды и обработчики, написанные для umbot, автоматически становятся доступны для Viber. * Единый интерфейс позволяет одновременно использовать одну бизнес-логику для нескольких * платформ (Viber, VK, Алиса и др.) без дублирования кода. * * Этот адаптер автоматически обрабатывает входящие webhook`и от мессенджера Viber, * преобразует их в унифицированный формат фреймворка и формирует ответ, * совместимый с требованиями платформы. Подключается одной строкой и * не мешает работе других адаптеров (например, для Алисы или Маруси). * * Поддерживает: * - голосовые и текстовые запросы; * - карточки, кнопки; * * Подключается как любой другой адаптер: `bot.use(new ViberAdapter(token))`. * Несколько адаптеров могут работать одновременно — система сама выберет подходящий * на основе заголовков и структуры входящего запроса. * @example * ```ts * // Простейший бот для Viber, который отвечает на приветствие * import { Bot } from 'umbot'; * import { ViberAdapter } from 'umbot/plugins'; * * const bot = new Bot() * .use(new ViberAdapter('YOUR_VIBER_TOKEN')) * .addCommand('start', ['привет'], (_text, ctx) => { * ctx.text = 'Привет! Я твой первый бот для Viber'; * }); * * bot.start('localhost', 3000); * ``` * * @see Bot * @see BotController * @see BasePlatform */ export declare class ViberAdapter extends BasePlatform<IViberContent | string> { platformName: string; isVoice: boolean; limit: number; signatureName: string; init(appContext: AppContext): void; isPlatformOnQuery(query: IViberContent, headers?: Record<string, unknown>): boolean; setQueryData(query: IViberContent, controller: BotController): Promise<boolean>; getContent(controller: BotController): Promise<string>; /** * Заполняет данные о пользователе в NLU. * Разбивает полное имя на компоненты (username, first_name, last_name) * @param controller Контроллер приложения * @param userName Полное имя пользователя * @protected */ protected setNlu(controller: BotController, userName?: string): void; static isVoice(): boolean; getQueryExample(query: string, userId: string): Record<string, unknown>; }