umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
63 lines (62 loc) • 3.73 kB
TypeScript
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>;
}