Microsoft Bot Framework - адаптивные карточки не отправляются, когда диалог хранится в отдельном файле

Информация о боте

  • Платформа SDK: Node.js
  • Версия SDK: 8.11.2
  • Активные каналы: эмулятор Bot Framework и прямая линия
  • Среда развертывания: локальная разработка с помощью эмулятора

Описание проблемы

Я создал отдельный файл, содержащий диалог бота. В моем index.js я импортирую модуль и вызываю диалог в нужном месте. Когда дело доходит до отправки обычного текста, он работает нормально.

Однако, когда я отправляю адаптивную карточку, которая работает, когда весь код помещается в файл index.js, эмулятор бота дает сбой и становится черным. Я также попробовал использовать прямую линию локально, и в результате на неопределенное время отображается значок «набирает текст», который находится прямо перед вызовом, который должен отправить сообщение.

Этапы воспроизведения

Вы можете следовать этому базовому примеру, чтобы проверить проблему:

module.exports = function(bot) { 
    bot.dialog('pcnLogin', [
      function (session, args) {
         let msg = new builder.Message(session).addAttachment(yourCard);
         session.send(msg);
      }]);
}

Затем импортируйте модуль в основной файл:

require('./dialogs')(bot);

Наконец, вызовите диалог из основного потока ботов:

session.beginDialog('pcnLogin');

Заключительные комментарии

Я не получаю ошибок в консоли. Единственное поведение:

  • эмулятор вылетает и становится черным
  • бесконечное многоточие при тестировании в файле HTML

Хочу подчеркнуть, что точно такой же код отлично работает, если он включен в index.js.


person Lucio    schedule 07.07.2018    source источник


Ответы (1)


Проблема исправлена! Объект адаптивной карты, который я передавал во вложении, имел неопределенное значение из-за неправильного импорта! :)

person Lucio    schedule 08.07.2018