Node.js 在Microsoft Bot Framework v4 for NodeJS中处理HeroCards响应

Node.js 在Microsoft Bot Framework v4 for NodeJS中处理HeroCards响应,node.js,facebook,async-await,botframework,Node.js,Facebook,Async Await,Botframework,我正在使用Microsoft Bot Framework v4的NodeJs API。我的对话框不是在ActivityHandler中硬编码的,我只是从那里调用。我正在使用瀑布对话框。因此,当我尝试在messenger上显示Carousel卡(在Microsoft bot framework上是HeroCard)时,它会成功显示,但当我单击卡上的任何按钮时,下一个对话框没有响应 我尝试处理onMessagehook,但它只是尝试验证响应并抛出错误 谢谢你的帮助 ----我添加了更多细节----

我正在使用Microsoft Bot Framework v4的NodeJs API。我的对话框不是在
ActivityHandler
中硬编码的,我只是从那里调用。我正在使用瀑布对话框。因此,当我尝试在messenger上显示
Carousel卡
(在Microsoft bot framework上是
HeroCard
)时,它会成功显示,但当我单击卡上的任何按钮时,下一个对话框没有响应

我尝试处理
onMessage
hook,但它只是尝试验证响应并抛出错误

谢谢你的帮助

----我添加了更多细节-----

我正在使用此模板创建卡片

const card = CardFactory.heroCard('title', 'subtitle', ['imagelink'], [
    { type: ActionTypes.PostBack,
        title: 'product 1',
        value: 'product_1'
    },
    { type: ActionTypes.PostBack,
        title: 'product 1',
        value: 'product_1' 
    },
]);
  await context.sendActivity({ attachments: [card] }); 
可以成功创建汽车,但问题是,在那之后,如果用户需要,我会发送一个提示,让用户打开主菜单

所以我就这样送他们

 await context.sendActivity({ attachments: [card] }); 
 await step.prompt(LIST_ITEMS_MENU_PROMPT, menuPromptPayload);

如果用户单击卡片上的一个按钮,就会抛出一个错误,因为我认为框架会等待提示符的回答。无法捕获卡按钮的有效负载

您需要指示bot等待并在
发送项目
中的
发送活动
后返回响应。类似地,如果您不告诉bot继续,那么您将在
handleItems
中遇到错误,因为除了控制台日志记录之外,没有其他事情发生

异步发送项(步骤){
.......
wait step.context.sendActivity({attachments:cards});
//通知bot等待。通常,在“sendActivity”上,它会继续执行下一步。
//“DialogTurnStatus”可以在“botbuilder dialogs”包中找到。
返回{status:DialogTurnStatus.waiting};
}
异步handleItems(步骤){
控制台日志(步骤结果);
return step.next();//告诉bot继续下一步。
}

希望有帮助

你能提供你的卡代码吗?在这种情况下,用户的交互是什么?您希望在价值中找到什么结果?接受/向上投票答案服务于更大的堆栈溢出社区和任何有类似问题的人。如果你觉得我的回答足够,请“接受”并投票表决。如果没有,让我知道我还能提供什么帮助!嘿,史蒂文!我更新了答案并添加了更多信息!谢谢如果我在发送herocards后不提示用户,它就可以工作,但是我需要通过快速回复按钮发送一个提示,让用户返回主菜单。谢谢你的帮助!
 await context.sendActivity({ attachments: [card] }); 
 await step.prompt(LIST_ITEMS_MENU_PROMPT, menuPromptPayload);