https://github.com/vitalets/skill-dev-proxy
Навык для Алисы, позволяющий отлаживать другие навыки прямо на устройстве
https://github.com/vitalets/skill-dev-proxy
Last synced: 6 months ago
JSON representation
Навык для Алисы, позволяющий отлаживать другие навыки прямо на устройстве
- Host: GitHub
- URL: https://github.com/vitalets/skill-dev-proxy
- Owner: vitalets
- Created: 2021-05-01T11:31:00.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-01-21T11:32:41.000Z (over 2 years ago)
- Last Synced: 2025-03-10T11:39:10.907Z (7 months ago)
- Language: TypeScript
- Size: 2.49 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# skill-dev-proxy
Проскирующий навык, позволяющий отлаживать другие навыки.## Платформы
* Алиса
* Сбер
* Маруся## Установка
1. `skill-dev-proxy` удобнее всего развернуть на [heroku](https://heroku.com) в бесплатном аккаунте. Для этого нажмите на кнопку ниже:[](https://heroku.com/deploy)
2. Укажите название приложения, регион `Europe` и нажмите `Deploy app`
3. После успешного деплоя нажмите на кнопку `View app`. Откроется новая вкладка по урлу `https://xxx.herokuapp.com`. Там будет текст:
```
Работает. Таргеты:
Локалхост
Мой навык 1
```
4. В настройках приложения вы увидите переменную окружения `TARGETS`. Это список навыков для проксирования. Внесите туда свои навыки в виде JSON, например:
```json
[
{
"name": "Локалхост",
"regexp": "([lv]ocal|локал|около|локо)\\s?([hfp]ost|[хп]ост|хвост)",
"url": "websocket"
},
{
"name": "Мой навык 1",
"url": "https://my-webhook.ru"
}
]
```5. Создайте на нужных платформах проксирующий навык (например `Мой прокси`) и укажите вебхуком ссылку на heroku вида `https://xxx.herokuapp.com`.
* Алиса: в [панели разработчика](https://dialogs.yandex.ru/developer) создайте приватный навык и опубликуйте его. Для приватных навыков модерация не требуется.
* Сбер: в [смарт-маркет студии](https://developers.sber.ru/studio) заведите черновик и укажите ему вебхук. Публиковать черновик не нужно.
* Маруся: в [списке приложений](https://vk.com/apps?act=manage) заведите черновик и укажите ему вебхук. Публиковать черновик не нужно.## Использование
1. Запустите ваш приватный навык на устройстве
3. Выберите таргет для проксирования
4. Все последующие фразы проксируются в выбранный таргет
5. Для смены таргета в любой момент скажите `список таргетов` или `установи таргет XXX`## Проксирование на localhost
Для отладки локального кода в конфиге по умолчанию есть таргет `Локалхост`. Он умеет проксировать запросы на локалльную машинку через WebSocket. Для этого нужно установить клиент (пока только Node.js):1. Установите в проект зависимость `skill-dev-proxy`
```
npm i -D skill-dev-proxy
```
2. Заведите в проекте скрипт, который будет слушать запросы и вызывать ваш код. Пример:
```js
// check.js
const { runClient } = require('skill-dev-proxy');
const { handler } = require('./skill');runClient({
wsUrl: 'https://xxx.herokuapp.com', // <-- замените на ваш урл на хероку
handler, // <-- js-функция или урл вида http://localhost:PORT
});
```
3. Запустите это скрипт `node check.js`
4. В проксирующем навыке скажите `Установи таргет локалхост`
5. Теперь все запросы в проксирующий навык будут обрабатываться локальным кодом в `./skill`> Скрипт `check.js` можно запустить через [nodemon](https://github.com/remy/nodemon) или [ts-node-dev](https://github.com/wclr/ts-node-dev). Тогда он будет автоматически перезапускаться при изменениях файлов. И вы сразу сможете тестить эти изменения на устройстве.
## FAQ
#### Ошибка `Диалог не отвечает`
Такое бывает при первом обращении к навыку после неактивности, т.к. приложение на heroku засыпает при отсутствии запросов. Вообще это полезно и позволит вам сэкономить бесплатные часы. Нужно просто повторить запрос. Я обычно тестирую с локалхоста, поэтому сначала запускаю клиента, который своим коннектом по вебсокету будит приложение. А потом уже захожу с устройства.## Лицензия
MIT @ [Vitaliy Potapov](https://github.com/vitalets)