https://github.com/max36895/universal_bot-ts
Универсальное приложение, позволяющее писать только логику бота. В дальнейшем логику можно использовать для Навыков для Алисы, а также различных ботов.
https://github.com/max36895/universal_bot-ts
alisa alisa-skills marusia marusia-skills telegram-bot viber-bot vk-bot vui
Last synced: 4 months ago
JSON representation
Универсальное приложение, позволяющее писать только логику бота. В дальнейшем логику можно использовать для Навыков для Алисы, а также различных ботов.
- Host: GitHub
- URL: https://github.com/max36895/universal_bot-ts
- Owner: max36895
- License: mit
- Created: 2020-11-04T07:40:19.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-07-09T09:01:40.000Z (almost 2 years ago)
- Last Synced: 2025-01-31T12:04:39.624Z (4 months ago)
- Topics: alisa, alisa-skills, marusia, marusia-skills, telegram-bot, viber-bot, vk-bot, vui
- Language: TypeScript
- Homepage: https://www.maxim-m.ru/bot/ts-doc/index.html
- Size: 600 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# umbot
Универсальное приложение для создания навыков и ботовДокументация
------------
Документация: [umbot-ts](https://www.maxim-m.ru/bot/ts-doc/index.html). Получить информации о работе приложения можно в [телеграм канале](https://t.me/joinchat/AAAAAFM8AcuniLTwBLuNsw) или [группе](https://t.me/mm_universal_bot).
Также можно прочитать [статью, в которой рассказано как создать навык "Я никогда не"](https://www.maxim-m.ru/article/sozdanie-navyika-ya-nikogda-ne)Описание
--------
Движок позволяет создать навык для Яндекс.Алиса, Маруси, Сбер(SmartApp), бота для vk, viber или telegram, с идентичной логикой.
Типы доступных приложений в дальнейшем будут дополняться.При необходимости есть возможность создать приложение со своим типом бота.
Тип приложения устанавливается в `mmApp.appType`, по умолчанию используется alisa.Установка и запуск
------
## Установка
Склонируйте репозиторий, например в папку u_bot
```bash
git clone https://github.com/max36895/universal_bot-ts.git u_bot
```
Или установите из `npm`
```bash
npm i umbot
```## Запуск
1. Установите зависимости.
```bash
npm i
```
2. Напишите логику приложения.
3. Соберите проект.
```bash
npm run build
```
3. Запустите. Для стандартного запуска, в директории приложения package.json должен быть со следующим содержимым:
```json
{
"name": "Название Вашего приложения",
"description": "Описание",
"main": "index.js (Путь к индексному файлу)",
"scripts": {
"start": "node ./dist/index.js",
"build": "rm -rf dist/ && tsc"
}
}
```
После, запустите сервер командой:
```bash
npm start
```
На данный момент поддерживается запуск через стандартную библиотеку `http`, но можно использовать любое удобное решение.Старт
------------
Для запуска приложения соберите проект, и по необходимости установите ssl сертификат
# SSL
Для работы некоторых приложений, необходимо иметь ssl сертификат. Поэтому необходимо его получить. Для этого можно воспользоваться acme.
## Установка acme.sh
```bash
curl https://get.acme.sh | sh
```
## Использование и установка сертификата для сайта
```bash
acme.sh --issue -d {{domain}} -w {{domain dir}}
```
1. domain - Название домена (example.com)
2. domain dir - Директория, в которой находится сайт```bash
acme.sh --install-cert -d {{domain}} --key-file {{key file}} --fullchain-file {{cert file}} --reloadcmd "service nginx reload"
```
1. domain - Название домена (example.com)
2. key file - Директория, в которой хранится ключ сертификата
3. cert file - Директория, в которой сохранится сертификат## Важно!
После получения сертификата, перезапустите сервер. Для ngnix - `sudo service nginx reload`Тестирование
------------
# Ngrok
Используется для локального тестирование навыка. Актуально в том случае, когда разработчику необходимо протестировать работу приложения в локальной сети.
## Установка
Смотрите на сайте [ngrok](https://ngrok.com/download)
## Запуск
```bash
ngrok http --host-header=rewrite :port
```
1. domain - локальный адрес сайта. Важно сайт должен быть доступен на машине! (Прописан в файле hosts)
2. port - Порт для подключения. Для бесплатного аккаунта нельзя использовать 443 портПосле успешного запуска, скопируйте полученную ссылку с https, и вставить в консоль разработчика.
# Тестирование проекта
Протестировать приложение можно 2 способами:
1. Через ngrok (Актуально для Алисы и сбера), либо через свой webhook.
2. Через консоль, средствами движка (локально).
## Тестирование через Ngroc
Для тестирования через ngrok, необходимо скачать программу, а также запустить её.
После полученную ссылку с https, вставить в [консоль разработчика](https://dialogs.yandex.ru/developer), и перейти на вкладку тестирования.
Данное действие актуально для Алисы. Для других платформ ссылка вставляется в соответствующую консоль разработчика.## Тестирование в консоли
Для тестирования используется тот же код, что и для запуска.
С той лишь разницей, что нужно использовать класс `BotTest` вызывать метод `test` вместо `run`, также нет необходимости запускать сервер.
После запустить приложение.
```bash
node index.js
```
Откроется консоль с Вашим приложением. Для выхода из режима тестирования нужно:
1. Если навык в определенный момент ставит `isEnd` в True (Что означает завершение диалога), то нужно дойти до того места сценария, в котором диалог завершается.
2. Вызвать команду exit.Помимо ответов, можно вернуть время обработки команд и состояние хранилища.
Помощь и поддержка проекта
------
Любая помощь и поддержка приветствуется.
Если будут найдены различные ошибки или предложения по улучшению, то смело пишите на почту: [email protected]