Node.js 如何在同一步骤中组合ChoicePrompt和TextPrompt

Node.js 如何在同一步骤中组合ChoicePrompt和TextPrompt,node.js,botframework,Node.js,Botframework,我正在node.js中使用Microsoft Bot Framework V4。在对话框的一个步骤中,我们需要使用ChoicePrompt对象和TextPrompt组合按钮。如果用户单击按钮,建议的操作将被触发,如果用户编写纯文本,我们将使用路易斯和某些意图处理该操作。问题在于两者的结合 在使用ChoicePrompt时,我试图避免重新提示,但我无法做到。我还寻找其他可以直接组合按钮和文本的提示,但似乎没有 首先,我声明我在提示符中使用的对象: class ExampleDialog扩展了Log

我正在node.js中使用Microsoft Bot Framework V4。在对话框的一个步骤中,我们需要使用ChoicePrompt对象和TextPrompt组合按钮。如果用户单击按钮,建议的操作将被触发,如果用户编写纯文本,我们将使用路易斯和某些意图处理该操作。问题在于两者的结合

在使用ChoicePrompt时,我试图避免重新提示,但我无法做到。我还寻找其他可以直接组合按钮和文本的提示,但似乎没有

首先,我声明我在提示符中使用的对象:

class ExampleDialog扩展了LogoutDialog{
构造函数(用户状态、记录器){
超级(示例_对话框);
此.addDialog(新建文本提示(文本提示));
this.addDialog(新选项提示(选项提示));
其次,在步骤中,我使用前面声明的提示:

异步第一步(步骤){
常数提示={
提示:“要提示的文本”,
retryPrompt:“重试文本提示”,
选项:ChoiceFactory.toChoices(['option1'、'option2'、'option3'])
};
const prompaction=wait step.prompt(提示ID,提示);
回报提示;
}
异步第二步(第二步){
const thePreviousStepResult=step.result.values
}

当您想要接受任何字符串时,文本提示是一种方法。请记住,您可以将任何活动作为提示选项的
prompt
属性包含在内,并且该活动可以包含附件、建议的操作等。您可以在中看到,选项提示只调用使用
prompt.appendChoices
>ChoiceFactory
为其活动生成按钮。您可以执行相同的操作:

const prompoptions={
提示:ChoiceFactory.forChannel(step.context,['option1','option2','option3'],'Text to prompt')
//如果愿意,还可以包括重试提示,
//但是没有必要在文本提示中包含choices属性
};
const prompaction=wait step.prompt(文本提示,prompptions);
回报提示;


要清楚,您希望提示接受任何字符串,但仍然向用户提供按钮。这是否正确?是的,正是这样。
LogoutDialog
是一个组件对话框吗?是的,登录需要LogoutDialog从ComponentDialog扩展而来。非常感谢!!:@ErnestoAlarcónGallo-如果这对您有帮助,请记住向上投票并选择一个接受我的回答我想投票,但我还是太新了,我会尽快投票。对此感到抱歉…@ErnestoAlarcónGallo-这是你自己问题的答案。即使你不能投票,你仍然可以点击复选标记接受。