对话框
4.6.0 使用直线在网站中使用
我正在尝试在Bot会话的简介期间触发瀑布对话框。我想显示一些提示性卡片选项以及简介,并使用Waterfall遵循这些步骤。但是不幸的是,暗示性的行动没有被触发吗?是因为我可能需要将上下文传递给对话框并从该上下文而不是对话框上下文中触发提示性操作?
如果我从对话框中发送普通短信,则可以正常工作,但不建议采取措施
return await step.context.sendActivity('Welcome' );
当我将Bot加载到网络中时,我希望看到Bot会向我提出一些建议性的卡片选项。它必须触发“欢迎”对话框并显示建议性的操作
例如:如果我在不调用对话框的情况下直接在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);
}
})
答案 0 :(得分:0)
您的suggestList
的title属性需要一个string
值,但是ji18n()
返回一个对象。我相信这就是阻止您的suggestedAction
呈现的原因。
考虑实现doc中引用的以下内容:
.addDialog( new WaterfallDialog(MAIN_WATERFALL_DIALOG, [
async ( step ) => {
const activity = step.context.activity;
const input = {
"option1": [{
"$": {
"en-US": `This is "option 1" in English`,
"fr-FR": `Il s'agit de "l'option 1" en anglais`
}
}]
}
const output = ji18n(input, activity.locale)
console.log('Output ', output['option1'][0])
const suggestList = [{
type: ActionTypes.PostBack,
title: output['option1'][0],
value: { id: '1000000', type: 'option1' }
}]
const suggestedAction = MessageFactory.suggestedActions( suggestList )
return await step.context.sendActivity( suggestedAction );
}
]))
返回的英语结果为输出和按钮标题:
法语结果作为输出和按钮标题返回:
希望有帮助!