发送自适应卡后无法发送任何其他活动

时间:2019-07-15 22:07:29

标签: node.js azure-bot-service cortana-skills-kit

我的自适应卡发送,并继续进行对话的下一步(打印以确保内容),但是由于某种原因,它不会显示任何其他活动,无论是提示,另一张自适应卡还是只是文本。我试过让它们处于相同的异步步骤中,然后一个接一个地发送,但这都不起作用。我没有收到任何错误消息,并且该步骤中的所有其他操作都将除“ 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?");
}

1 个答案:

答案 0 :(得分:1)

如果您使用的是Cortana,请不要忘记添加inputHint。另外,您在什么设备上测试Cortana?在我看来,该频道已关闭,那么下一轮在Cortana中会发生什么?如果您发送自适应卡,它仍然起作用吗?如果卡中有语法错误,我相信Cortana会退出。发布卡json。检查所有必填字段是否存在,以及所有类型均应为预期值。