Поддержка и развитие движка прекращена. На данный момент есть 2 поддерживаемых проекта,написанных на php и ts. Их главное преимущество заключается в поддержке последних версий протокола, высокой скорости работы, а также возможность создания навыка/бота сразу на несколько платформ одновременно. Ссылки на проекты:
Любая помощь и поддержка приветствуется :)
api - Дополнительные инструменты для бота
alisa - Блоки для отображения контента
component - Вспомогательные компоненты
processing - В данной папке находятся параметры для бота и класс Command
kernel - Ядро бота
example - Пример бота.
Для запуска необходим следующий минимальный код
require_once __DIR__ . '/bot/YandexBot.php'; // Полный путь к боту
$yandexBot = new YandexBot(); // создаем объект класса
if ($yandexBot->output) { // проверяем параметры
$yandexBot->name = 'newBot'; // Даем имя боту (используется для логов)
$button = ['играть']; // Кнопки
$yandexBot->setButtons($button); // Инициализация кнопки
$yandexBot->dirAllCommand = __DIR__ . '/param/allCommand.php'; // Путь к своим командам, которые должны обрабатываться
require_once __DIR__ . '/param/newCommand.php'; // Класс, который обрабатывает новые команды
$yandexBot->newCommand = new newCommand(); // Инициализируем класс
$yandexBot->welcome = [
'Текст для приветствия',
]; // Обязательно должно быть инициализированно. Данные сообщения получает пользователь при заходе в навык, а так же при приветствии пользователя.
$yandexBot->help = [
'Помощь при работе с навыком',
]; // Обязательнл должно быть инициализированно. Так как именно из этого текста пользователь понимает что делает навык. Так же необходимо чтобы пройти модерацию.
echo $yandexBot->alisa(); // Запускаем навык
} else {
echo 'Ok';
}Вся логика навыков находится в классах Bot и Yandexlisa
Основной класс, отвечающий за взаимодействие навыка. Именно в данном классе происходит поиск команд, а так же обработка стандартных команд, и новых запрограммированных команд.
welcome- Массив фраз для приветствия пользователь(Обязательный параметр)params- Параметры используются для обработки новых командrandomText- Массив фраз, когда навык совершенно не понял что от него хотятgoodName- Массив фраз, где навык говорит что у пользователя красивое имяhelp- Массив фраз для помощь (Обязательный параметр)about- Массив фраз рассказывающий о вас (Если не заполнен, то берется значение изhelp)by- Массив фраз для прощания с пользователемbotParamsJson- Данные пользователя в формате jsonname- Имя навыкаisLog- Тригер для записи логовisVk- Проверка что это бот для ВКcommandText- Запрос пользователяclientKey- Идентификатор пользователяcommandTextFull- Полный запрос пользователяmessageId- Порядковый номер сообщенияnewCommand- Путь до массива с обработкой дополнительных команд в навыкеprocessingCommand- Класс отвечающий за логику обработки новых командurl- Адрес сайтаkeyCommand- Ключ команды(не используется)
Класс унаследованный от Bot.
Отвечает непосредствено за инициализацию параметров, а также за отображение результата.
output- Полученый запросsessionId- Идентификатор сессииskillId- Идентификатор навыкаuserId- Идентификатор пользователяmeta- Мета информация пользователяnlu- Полученый nlu