3.0.0 • Published 1 year ago

skill-dev-proxy v3.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

skill-dev-proxy

Проскирующий навык, позволяющий отлаживать другие навыки.

Платформы

  • Алиса
  • Сбер
  • Маруся

Установка

  1. skill-dev-proxy удобнее всего развернуть на heroku в бесплатном аккаунте. Для этого нажмите на кнопку ниже:

    Deploy

  2. Укажите название приложения, регион Europe и нажмите Deploy app

  3. После успешного деплоя нажмите на кнопку View app. Откроется новая вкладка по урлу https://xxx.herokuapp.com. Там будет текст:
    Работает. Таргеты:
    Локалхост
    Мой навык 1
  4. В настройках приложения вы увидите переменную окружения TARGETS. Это список навыков для проксирования. Внесите туда свои навыки в виде JSON, например:

    [
     {
       "name": "Локалхост",
       "regexp": "([lv]ocal|локал|около|локо)\\s?([hfp]ost|[хп]ост|хвост)",
       "url": "websocket"
     },
     {
       "name": "Мой навык 1",
       "url": "https://my-webhook.ru"
     }
    ]
  5. Создайте на нужных платформах проксирующий навык (например Мой прокси) и укажите вебхуком ссылку на heroku вида https://xxx.herokuapp.com.

    • Алиса: в панели разработчика создайте приватный навык и опубликуйте его. Для приватных навыков модерация не требуется.
    • Сбер: в смарт-маркет студии заведите черновик и укажите ему вебхук. Публиковать черновик не нужно.
    • Маруся: в списке приложений заведите черновик и укажите ему вебхук. Публиковать черновик не нужно.

Использование

  1. Запустите ваш приватный навык на устройстве
  2. Выберите таргет для проксирования
  3. Все последующие фразы проксируются в выбранный таргет
  4. Для смены таргета в любой момент скажите список таргетов или установи таргет XXX

Проксирование на localhost

Для отладки локального кода в конфиге по умолчанию есть таргет Локалхост. Он умеет проксировать запросы на локалльную машинку через WebSocket. Для этого нужно установить клиент (пока только Node.js):

  1. Установите в проект зависимость skill-dev-proxy
    npm i -D skill-dev-proxy
  2. Заведите в проекте скрипт, который будет слушать запросы и вызывать ваш код. Пример:

    // 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 или ts-node-dev. Тогда он будет автоматически перезапускаться при изменениях файлов. И вы сразу сможете тестить эти изменения на устройстве.

FAQ

Ошибка Диалог не отвечает

Такое бывает при первом обращении к навыку после неактивности, т.к. приложение на heroku засыпает при отсутствии запросов. Вообще это полезно и позволит вам сэкономить бесплатные часы. Нужно просто повторить запрос. Я обычно тестирую с локалхоста, поэтому сначала запускаю клиента, который своим коннектом по вебсокету будит приложение. А потом уже захожу с устройства.

Лицензия

MIT @ Vitaliy Potapov

3.0.0

1 year ago

2.3.0

1 year ago

2.2.0

2 years ago

2.1.0

2 years ago

2.0.13

3 years ago

2.0.12

3 years ago

2.0.11

3 years ago

2.0.10

3 years ago

2.0.9

3 years ago

2.0.8

3 years ago

2.0.5

3 years ago

2.0.7

3 years ago

2.0.6

3 years ago

2.0.4

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

1.3.0

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.2.0

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.1.3

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.1.2

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago