Botframework 瀑布对话框中的提示性操作未被触发? 截图

Botframework 瀑布对话框中的提示性操作未被触发? 截图,botframework,azure-bot-service,Botframework,Azure Bot Service,对话 版本 4.6.0 在网站中使用directline 描述错误 我试图在bot会话的介绍过程中触发一个瀑布式对话框。我想在介绍的同时展示一些具有启发性的卡片选项,并使用瀑布来遵循这些步骤。但不幸的是,这些暗示性行为没有被触发?是不是因为我可能需要将上下文传递给对话框,并从该上下文而不是对话框上下文触发提示操作 如果我从对话框中发送一条正常的文本消息,它可以正常工作,但不会产生提示作用 return wait step.context.sendActivity('Welcome');

对话

版本 4.6.0 在网站中使用directline

描述错误 我试图在bot会话的介绍过程中触发一个瀑布式对话框。我想在介绍的同时展示一些具有启发性的卡片选项,并使用瀑布来遵循这些步骤。但不幸的是,这些暗示性行为没有被触发?是不是因为我可能需要将上下文传递给对话框,并从该上下文而不是对话框上下文触发提示操作

如果我从对话框中发送一条正常的文本消息,它可以正常工作,但不会产生提示作用
return wait step.context.sendActivity('Welcome');

预期行为 当我在网络上加载机器人时,我希望看到机器人向我问候一些建议性的卡片选项。它必须触发欢迎对话框并显示提示动作

暗示动作在哪里起作用 例如:如果我直接在async onTurn中触发提示操作,而不调用对话框,那么它就可以正常工作。但是如果我这样做的话,我将无法跟踪提示操作的点击到步骤,所以我想调用对话框并在瀑布对话框中执行活动

  async onTurn(context) {
if (context.activity.name === 'webchat/join') {
var suggestlist = [{
                    type: ActionTypes.PostBack,
                    title: ji18n('option 1'),
                    value: { id: '1000000', type: 'option1' }
                }];



                var suggestedAction = MessageFactory.suggestedActions(suggestlist);

                return await step.context.sendActivity(suggestedAction);

}  
})

suggestList
的title属性需要一个
string
值,但是
ji18n()
返回一个对象。我相信这就是阻止您的
suggestedAction
渲染的原因

考虑实施以下内容,如中所述:

.addDialog(新建瀑布对话框(主瀑布对话框、[
异步(步进)=>{
const activity=step.context.activity;
常量输入={
“选项1”:[{
"$": {
“en-US”:“这是英语中的“选项1”,
“fr fr”:“I’s”agit de“l”选项1“英语”`
}
}]
}
const output=ji18n(输入,activity.locale)
console.log('Output',Output['option1'][0])
常量建议列表=[{
类型:ActionTypes.PostBack,
标题:输出['option1'][0],
值:{id:'1000000',类型:'option1'}
}]
const suggestedAction=MessageFactory.suggestedAction(suggestList)
返回wait step.context.sendActivity(suggestedAction);
}
]))
作为输出和按钮标题返回的英文结果:

作为输出和按钮标题返回的法语结果:


希望有帮助

您的
suggestList
的title属性需要一个
string
值,但是
ji18n()
返回一个对象。我相信这就是阻止您的
suggestedAction
渲染的原因

考虑实施以下内容,如中所述:

.addDialog(新建瀑布对话框(主瀑布对话框、[
异步(步进)=>{
const activity=step.context.activity;
常量输入={
“选项1”:[{
"$": {
“en-US”:“这是英语中的“选项1”,
“fr fr”:“I’s”agit de“l”选项1“英语”`
}
}]
}
const output=ji18n(输入,activity.locale)
console.log('Output',Output['option1'][0])
常量建议列表=[{
类型:ActionTypes.PostBack,
标题:输出['option1'][0],
值:{id:'1000000',类型:'option1'}
}]
const suggestedAction=MessageFactory.suggestedAction(suggestList)
返回wait step.context.sendActivity(suggestedAction);
}
]))
作为输出和按钮标题返回的英文结果:

作为输出和按钮标题返回的法语结果:


希望有帮助

您是否尝试过在其他对话框中发送相同的提示动作,并且效果良好?如果是这样,请尝试在此对话框中发送它们,而不使用wait step.context.sendActivity(suggestedAction),然后返回wait step.endDialog()@MarcAsmar是的,它在其他地方起作用,但当我试图在对话中显示提示性动作时就不起作用了。我已经用一些场景更新了这个问题。你是否尝试过在其他对话框中发送同样的提示动作,效果很好?如果是这样,请尝试在此对话框中发送它们,而不使用wait step.context.sendActivity(suggestedAction),然后返回wait step.endDialog()@MarcAsmar是的,它在其他地方起作用,但当我试图在对话中显示提示性动作时就不起作用了。我已经用一些场景更新了这个问题。谢谢你的回答,但仍然不起作用。我希望社区里的人能帮我解决这个问题。这个问题已经解决了2个月了,微软也解决了同样的问题,还在等待更新。虽然社区的任何支持都会有所帮助。使用最新版本的node,npm botbuilder,在瀑布的第2步中甚至不会触发提示性选项。感谢您的回复,但这仍然不起作用。我希望社区里的人能帮我解决这个问题。这个问题已经解决了2个月了,微软也解决了同样的问题,还在等待更新。虽然社区的任何支持都会有所帮助。使用最新版本的node,npm botbuilder,即使是提示性的选项也不会在瀑布的第2步中触发。