node.js - Microsoft Bot Framework - 当对话框存储在单独的文件中时,自适应卡不会发送

标签 node.js chatbot azure-bot-service

机器人信息

  • SDK 平台:Node.js
  • SDK 版本:8.11.2
  • 事件 channel :Bot Framework 模拟器和 Direct Line
  • 部署环境:使用模拟器进行本地开发

问题描述

我创建了一个包含机器人对话框的单独文件。在我的 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 中,它可以完美地工作。

最佳答案

问题已解决!由于导入错误,我在附件中传递的自适应卡对象具有未定义的值! :)

关于node.js - Microsoft Bot Framework - 当对话框存储在单独的文件中时,自适应卡不会发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51226679/

相关文章:

node.js - Nginx 为 WebSockets 处理 SSL

node.js - Cleverbot.io API 无法正常工作

c# - 如何使用单一 API 从 QnA Maker V4.0 获取所有问答?

Azure Web Bot 服务重置消息传送端点

azure - 由于资源提供者注册错误,无法创建 Azure Web App 机器人

node.js - 如何在 NodeJs 中进行基于 1-of-X 或 Y-of-X 公钥的加密/解密?

android - 当我尝试上传新的时,我的 firebase 功能被删除了

javascript - 发布到 Azure 后,聊天机器人可以在模拟器上运行,但不能在 Web 聊天和 Direct Line 上运行

javascript - 错误: deadline-exceeded when working with firebase cloud functions

c++ - 编译 Eliza 聊天机器人 C++ 时出现问题 LNK2019