首页 > 解决方案 > botbuilder DialogTestClient 的 sendActivity 只接受字符串而不接受数字

问题描述

我正在使用 botbuilder DialogTestClient 的 sendActivity 方法在测试时向我的机器人发送提示,但该方法只接受字符串类型,并且在我的机器人中我使用数字提示来提示用户输入数字。您对我如何解决这个问题有任何想法吗?

提前致谢

标签: botframework

解决方案


我有点不清楚您是否仅针对 DialogTestClient 或所有客户端遇到此问题,但在 nodejs 中,您可以使用Number(promptInput). 如果 promptInput 已经是一个数字,它仍然可以正常工作。我假设 C# 中有类似的功能。

编辑:一些额外的上下文。您可以查看多轮提示示例中的userProfileDialog.js作为示例。本质上,NumberPrompt 在识别器中有一个“成功”属性,可确保您输入了一个数字。您可以在验证器函数中使用它以及您想要的任何验证。如果成功并通过验证,则会将一个数字而不是字符串传递到对话框的下一步。

如果在您尝试向用户重复提示值时出现错误,则需要将其转换为字符串。我喜欢为此使用反引号(模板字符串/文字),例如

await step.context.sendActivity(`You entered ${step.result}`);

step.resultnumberPrompt 结果在哪里。


推荐阅读