Поддержка и развитие движка прекращена. На данный момент есть 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