【问题标题】:How to make MS Bot Framework on Node.js wait for the user's next message?如何让 Node.js 上的 MS Bot Framework 等待用户的下一条消息?
【发布时间】:2017-05-31 03:54:28
【问题描述】:

我正在尝试使用 Node.js 和 MS Bot Framework 编写我的第一个机器人。从微软提供的示例中,我无法弄清楚如何实现这种场景:

  1. Bot 向用户发送消息。
  2. Bot 等待用户的回答。
  3. Bot 运行另一个函数来处理这个答案。

示例代码如下:

        if (!item.size) {
            // Prompt for size
            builder.Prompts.choice(session, "What size would you like?", "Small|Medium|Large|Extra Large");
        } else {
            //Skip to next waterfall step
            next();
        }

第一种方法(builder.Prompts.choice())实现了我想要的,但我不想使用丑陋的内置提示。我宁愿手动进行(向用户发送消息,提供选项,等待响应)。

第二种方法(next())只是直接跳到下一步,无需等待用户输入。

我创建了一个这样的对话框:

bot.dialog('name', [function 1() {}, function 2() {}]);

所以我只想找到一种方法,让function 1 输出一条消息并等待用户输入,然后转到function 2

【问题讨论】:

  • 在 c# sdk 中这是:context.Wait(nextMethod);。你应该会为 node.js 找到类似的东西。也许您可以获取用户输入并将其发送到另一个可以控制 Dialog 的功能?
  • 我知道,Node 中没有类似的东西,因为对话逻辑与 C# 一点也不相似。
  • 为什么不使用另一个函数来处理用户输入?
  • 哪一个? @BobSwager
  • 创建对话框,期待用户输入,在一个函数中处理用户输入,当你完成后就结束那个对话框。

标签: javascript node.js botframework


【解决方案1】:

builder.Prompts.text() 是否适合您的场景?

你可以只用它提出一个问题(字符串文本),用户可以随心所欲地回复。

https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-dialog-prompt

【讨论】:

  • 在他的问题中他说“但我不想使用丑陋的内置提示”
猜你喜欢
  • 1970-01-01
  • 2021-01-31
  • 2019-06-26
  • 1970-01-01
  • 2018-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多