重试提示自定义

时间:2017-08-03 09:05:00

标签: node.js botframework

我正在使用MS bot builder node.js SDK。在最近的一次更新之前,当重试提示时,它正在向用户发送与重试提示相同的消息文本。

但是,现在它正在系统中发送默认短信,这是"我不明白。请再试一次"。但是,我希望重试提示始终与原始邮件相同,如果可能的话,想要全局应用,这意味着我不想为我发送给用户的每个提示自定义重试提示。

我一直在四处寻找,但还没找到方法。

谢谢!

2 个答案:

答案 0 :(得分:5)

您可以修改提示以自动将提示设置为重试提示。 Prompts interface显示了args如何传递到基类Prompt类,因此我们可以通过访问Prompts中的方法来修改此提示行为。

以下是Prompts.confirm

的示例
const promptPrefix = 'BotBuilder:prompt-';

bot.dialog('/', [
  (session) => {
    builder.Prompts.confirm(session, 'Say yes or no');
  },

  (session, args) => {
    session.endConversation('You said: ' + session.message.text);
  }
]);

builder.Prompts.confirm = (session, prompt, options) => {
  var args = options || {};
  args.prompt = prompt || args.prompt;

  // If options.retryPrompt was passed in use this, otherwise use prompt
  args.retryPrompt = args.retryPrompt || args.prompt;
  session.beginDialog(promptPrefix + 'confirm', args);
};

修改后的Prompts.confirm:

example via ConsoleConnector

答案 1 :(得分:1)

一个选项是将重试提示作为选项发送到提示。例如:

builder.Prompts.number(session, "What's the number?", {
    retryPrompt: "What's the number?"
});

但是你必须在每个提示符上配置它。