Download the PHP package m-m/u_bot without Composer
On this page you can find all versions of the php package m-m/u_bot. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package u_bot
Универсальное приложение для создания навыков и ботов
Установка
Установите движок:
- Скачать движок из репозитория;
- Установить через composer;
Установка из репозитория
Для установки, просто склонируйте git репозиторий, а после подключайте нужные файлы.
Установка через composer
Для начала установите composer, а после выполните команду:
Документация
Документация: u_bot. Получить информации о работе приложения можно в телеграм канале или группе. Также можно прочитать статью, в которой рассказано как создать навык "Я никогда не"
Описание
Движок позволяет создать навык для Яндекс.Алиса, Маруси, Сбер(SmartApp), бота для vk, viber или telegram, с идентичной логикой. Типы доступных приложений в дальнейшем будут дополняться.
При необходимости есть возможность создать приложение со своим типом бота.
Тип приложения устанавливается в mmApp::$appType
, по умолчанию используется alisa.
Старт
Для успешного старта на всех платформах необходимо настроить конфигурацию приложения. А именно настроить подключение к бд(если есть необходимость), а также указать все необходимые авторизационные токены для корректной работы с api. Массив с настройками и подключению к базе данных и логам выглядит следующим образом:
Для установки конфигурации передайте данные в приложение следующим образом:
Массив с параметрами приложения выглядит следующим образом:
Для установки параметров передайте данные в приложение следующим образом:
Далее создайте файл входа в приложение, а также класс отвечающий за логику приложения. Он должен быть унаследован от абстрактного класса BotController
, и имеет следующий вид:
Свой тип приложения.
Для добавления своего типа приложения, установите тип в значение T_USER_APP
.
После чего передайте в функцию run
класс, отвечающий за инициализацию и возврат данных. Класс должен быть унаследован от абстрактного класса TemplateTypeModel
Создание своего типа приложения
Логика нового типа приложения
Для начала необходимо создать класс, отвечающий за инициализацию и отображение результата работы.
Проще говоря в данном классе происходит получение данных, а также инициализация параметров(Метод init()
).
После успешной обработки пользовательского запроса, класс должен подготовить ответ в требуемом формате(Метод getContext()
).
Пример:
Класс отвечающий за инициализацию основных параметров приложения.
- Устанавливается идентификатор пользователя
- Указывается запрос пользователя(Введенные текст)
- Другие необходимые параметры
В методе getContext происходит отображение полученного результата пользователю. Либо отправка ответа непосредственно через api. В случае отображения данных, необходимо привести ответ в текстовый формат, который поддерживает приложение.
Второстепенные компоненты
Все типы приложений имеют примерно одинаковый интерфейс класса, и должны быть унаследованы от абстрактного класса. Основные используемые компоненты:
- Кнопки/клавиатура - Используется для навигации и отображения кнопок
- Карточка - Используется для отображения изображений, коллекции из изображений, либо списка
- Звуки - Воспроизводимые звуки. Голосовые сообщения, либо простой звук.
Пример для отображения кнопок/клавиатуры:
Пример для отображения карточки:
Пример для воспроизведения звука:
UnitTest
Для запуска unit тестов установите все зависимости через composer
После установки зависимостей запустите unit тесты, использую одну из команд
или
SSL
Для работы некоторых приложений, необходимо иметь ssl сертификат. Поэтому стоит его получить. Для этого можно воспользоваться acme.
Установка acme.sh
Использование и установка сертификата для сайта
- domain - Название домена (example.com)
-
domain dir - Директория, в которой находится сайт
- domain - Название домена (example.com)
- key file - Директория, в которой хранится ключ сертификата
- cert file - Директория, в которой сохранится сертификат
Важно!
После получения сертификата, необходимо перезапустить сервер. Для ngnix - sudo service nginx reload
Ngrok
Используется для локального тестирование навыка. Актуально в том случае, когда разработчику необходимо протестировать работу приложения в локальной сети.
Установка
Смотрите на сайте ngrok
Запуск
- domain - локальный адрес сайта. Важно сайт должен быть доступен на машине! (Прописан в hosts)
- port - Порт для подключения. Для бесплатного аккаунта нельзя использовать 443 порт
После успешного запуска, нужно скопировать полученную ссылку с https, и вставить в консоль разработчика.
Тестирование Вашего проекта
Протестировать приложение можно 2 способами:
- Через ngrok
- Через консоль
Тестирование через Ngroc
Для тестирование через ngrok, нужно скачать программу, и запустить её. После полученную ссылку с https, вставить в консоль разработчика, и перейти на вкладку тестирования. Данное действие актуально только для Алисы. Для других платформ ссылка вставляется в соответствующую консоль разработчика.
Тестирование в консоли
Для тестирования используется тот же код что и при запуске. С той лишь разнице, что нужно вызвать метод test вместо run.
После запустить приложение.
Откроется консоль с Вашим приложением. Для выхода из режима тестирования нужно:
- Если навык в определенный момент ставит
isEnd
в True(Что означает завершение диалога), то нужно дойти до того места сценария, в котором диалог завершается. - Ввести команду exit.
Помимо ответов, можно вернуть время обработки команд.
Помощь и поддержка проекта
Любая помощь и поддержка приветствуется. Если будут найдены различные ошибки или предложения по улучшению, то смело пишите на почту: [email protected]
All versions of u_bot with dependencies
ext-mbstring Version *
ext-curl Version *
ext-json Version *
ext-mysqli Version *