Node.js

Запустим навык «Попугай», который будет отвечать пользователю его же словами. Нужно подготовить исходный код и развернуть веб-сервис.

  1. Исходный код
  2. Развертывание веб-сервиса

Исходный код

Чтобы развернуть навык на Node.js, подготовим исходный код обработчика и конфигурацию веб-сервиса:

  1. Создайте папку навыка, например, myskill-alice.

  2. Создайте в папке приведенные ниже файлы.

    // Для асинхронной работы используется пакет micro.
    const { json } = require('micro');
    
    // Запуск асинхронного сервиса.
    module.exports = async req => {
    
      // Из запроса извлекаются свойства request, session и version.
      const { request, session, version } = await json(req);
    
      // В тело ответа вставляются свойства version и session из запроса.
      // Подробнее о формате запроса и ответа — в разделе Протокол работы навыка.
      return {
        version,
        session,
        response: {
    
          // В свойстве response.text возвращается исходная реплика пользователя.
          // Если навык был активирован без дополнительной команды,
          // пользователю нужно сказать "Hello!".
          text: request.command || 'Hello!',
    
          // Свойство response.end_session возвращается со значением false,
          // чтобы диалог не завершался.
          end_session: false,
        },
      };
    };

Развертывание веб-сервиса

Развернем приложение с помощью сервиса Now:

  1. Установите приложение Now.

    Примечание. Обратите внимание, что в бесплатном варианте Now ваш исходный код и логи приложений открыты для всех.
  2. Выполните консольную команду now в папке myskill-alice. Консоль выведет адрес созданного приложения.

  3. По умолчанию Now генерирует случайный адрес для ваших приложений. Чтобы использовать постоянный поддомен, используйте команду now alias:

    now alias https://myskill-alice-qfnzrtlply.now.sh myskill-alice

Теперь навык можно зарегистрировать, указав полученный URL в поле Webhook URL. Сразу после этого работу навыка можно будет проверить на вкладке Тестирование. Чтобы писать более сложные навыки, ознакомьтесь с протоколом работы Яндекс.Диалогов.