Node.js Can';发送自适应卡后,不要发送任何其他活动

Node.js Can';发送自适应卡后,不要发送任何其他活动,node.js,azure-bot-service,cortana-skills-kit,Node.js,Azure Bot Service,Cortana Skills Kit,我的自适应卡发送,并继续到对话中的下一步(打印一些内容以确保),但出于某种原因,它不会显示任何其他活动,无论是提示、另一个自适应卡还是文本。我曾尝试将它们放在同一个异步步骤中,然后一个接一个地发送,但这也不起作用。我没有收到任何错误消息,除了“sendActivity”方法之外,步骤中的所有其他方法都将执行。是否存在某种我不知道的约定 我已经将问题缩小到Cortana频道,因为它在网络聊天和模拟器中都能完美工作 class BookingDialog extends CancelAndHelpD

我的自适应卡发送,并继续到对话中的下一步(打印一些内容以确保),但出于某种原因,它不会显示任何其他活动,无论是提示、另一个自适应卡还是文本。我曾尝试将它们放在同一个异步步骤中,然后一个接一个地发送,但这也不起作用。我没有收到任何错误消息,除了“sendActivity”方法之外,步骤中的所有其他方法都将执行。是否存在某种我不知道的约定

我已经将问题缩小到Cortana频道,因为它在网络聊天和模拟器中都能完美工作

class BookingDialog extends CancelAndHelpDialog {
    constructor(id) {
        super(id || 'bookingDialog');

    this.addDialog(new TextPrompt(TEXT_PROMPT))
        .addDialog(new ConfirmPrompt(CONFIRM_PROMPT))
        .addDialog(new DateResolverDialog(DATE_RESOLVER_DIALOG))
        .addDialog(new WaterfallDialog(WATERFALL_DIALOG, [
            this.destinationStep.bind(this),
            this.originStep.bind(this),
            this.travelDateStep.bind(this),
            this.confirmStep.bind(this),
            this.finalStep.bind(this)
        ]));

    this.initialDialogId = WATERFALL_DIALOG;
}

/**
 * If a destination city has not been provided, prompt for one.
 */
async destinationStep(stepContext) {
    console.log("DESTINATION");
    var Card = CardFactory.adaptiveCard(WelcomeCard);
    const bookingDetails = stepContext.options;

    await stepContext.context.sendActivity({ attachments: [Card],attachmentLayout: AttachmentLayoutTypes.Carousel});
        return await stepContext.next(bookingDetails);

}

/**
 * If an origin city has not been provided, prompt for one.
 */
async originStep(stepContext) {

   return await stepContext.context.sendActivity("Would you like to email them?");
}

如果您使用的是Cortana,请不要忘记添加InputInt。另外,你在什么设备上测试Cortana?听起来好像频道已经关闭了,那么在Cortana的下一个转弯处会发生什么呢?如果您不发送自适应卡,它是否仍然正常工作?如果卡中有语法错误,我相信Cortana会退出。把卡片寄出去。检查所有必填字段是否存在,以及所有类型是否都是预期的。

是的,这就是修复它的方法!将InputInt设置为“ignoringInput”ignoringInput将强制执行下一个回合(直到它到达需要输入的步骤)。这意味着对话流中的某个地方出现了故障;为了好玩,请尝试在活动中发送摘要、讲话和文本属性。忽略输入是您不想做的事情—您希望用户单击目标—或者在他们看到卡后说出您的目标,对吗?