AbstractOptionalplatformToken: stringOptionaladditionalPlatformOptions: IAdapterOptionsProtected Optional_Protected Optional_OptionalappКонтекст приложения
Определяет тип платформы(голосовая или чат-бот)
Определят лимит платформы. В значение указывается количество запросов, которое можно отправить платформе за 1 секунду. В случае если у платформы нет ограничений, можно указать 0 или null. По умолчанию null
ProtectedMAX_Максимальное время ответа навыка в миллисекундах при превышении этого времени, будет отправлена ошибка
Имя платформы
ProtectedWARMING_Время ответа навыка в миллисекундах при превышении этого времени, будет отправлено предупреждение
Protected_ProtectedИнициализирует TTS (Text-to-Speech) в контроллере. Обрабатывает звуки и стандартные звуковые эффекты
Тип приложения
Protected_При превышении установленного времени исполнения, пишет информацию в лог После вызова getContent() автоматически проверяется время выполнения. Если оно превышает 2000 мс — пишется warning, если >2900 мс — ошибка.
AbstractgetФормирует тело ответа для отправки пользователю.
Возвращает платформо-специфичный ответ (например, JSON для Алисы).
Для платформ, которые отправляют ответ напрямую (например, Telegram через sendMessage),
метод может возвращать { ok: true } или аналог.
контроллер с готовым ответом
OptionalstateData: Record<string, unknown> | nullданные для локального хранилища
ответ в формате, понятном платформе
Получает данные из локального хранилища платформы.
контроллер приложения
данные, сохранённые ранее
Получает время выполнения запроса в миллисекундах
Время выполнения запроса
Возвращает демо результат запроса, который будет приходить от платформы. Используется только при локальном тестировании. Необходимо указывать для того, чтобы можно было корректно проверить работоспособность приложения.
Обязательно определите метод, ели планируется тестирования приложения через инструменты предоставляемые платформой. Это существенно упростит процесс разработки приложения.
Запрос пользователя
Идентификатор пользователя
Порядковый номер запроса
Данные из локального хранилища
Инициализация адаптера. Определять не обязательно. Стоит указывать в случаях, когда нужно выполнить доп логику, например указать токены или писать какую-то статистику по использованию.
Указывает, поддерживает ли платформа локальное хранилище.
контроллер приложения
true, если локальное хранилище доступно
AbstractisВозвращает признак того, соответствует ли запрос текущей платформе или нет
Запрос, который пришел в приложение
Optionalheaders: Record<string, unknown>Заголовок с которым был отправлен запрос
true, если запрос относится к этой платформе, иначе false
Отправка текста пользователю
Этот метод используется для активных рассылок — когда бот инициирует диалог первым (например, уведомление).
В методе реализована механика преобразования текстового значения controllerOrText в контроллер, а также базовый механизм для отправки ответа.
Переопределять данный метод не рекомендуется. Переопределить стоит только в том случае, если по каким-то технических условиям текущая реализация метода вам не подходит.
Если платформа не поддерживает возможность начать диалог самостоятельно, то можно оставить метод пустым, либо вывести любую заглушку.
Ид пользователя, которому нужно отправить сообщение
Контроллер приложения или текст. Если необходимо отправить просто текст, можно передать строку, в случае, если необходимо передать картинку звук и тд, то необходимо корректно заполнить контроллер.
Сохраняет данные в локальное хранилище платформы.
данные для сохранения
контроллер приложения
AbstractsetПарсит входящий запрос и заполняет контроллер.
Обязательно установите:
controller.text — текст сообщения пользователяcontroller.userId — уникальный ID пользователяcontroller.platform = this.platformNameОпционально:
controller.intent — если платформа присылает интентcontroller.entities — извлечённые сущностиcontroller.session — данные сессииЗапрос от платформы
Контроллер приложения
false, если запрос повреждён или не может быть обработан; иначе true
Дополнительная обработка для звуков. В данном методе стоит реализовать логику, с помощью которой будут наложены дополнительные эффекты для озвучивания текста пользователю
Устанавливает время начала обработки запроса. Используется для измерения времени выполнения
StaticisФлаг, указывающий, что платформа голосовая (например, Алиса, Маруся).
Базовый класс для создания адаптера собственной платформы (Telegram, WhatsApp, Slack и др.).
Чтобы подключить свою платформу, унаследуйтесь от этого класса и реализуйте все абстрактные методы. Адаптер автоматически зарегистрируется в системе при подключении через
bot.use(new MyPlatformAdapter()).=== Обязательные методы ===
controller=== Опциональные ===