如何使用C#中的Microsoft Bot Framework SDK V4开发的ChatBot中的自适应卡添加条件?

柴坦尼亚伍

块引用

我有一个聊天机器人,带有多个瀑布对话框,其中一个使用自适应卡来显示获取输入的表单,它是使用SDK#V4模板在C#中使用MS Bot框架开发的,并且通道是WebChannel,因此在后面使用了HTML结束机器人工作

<!DOCTYPE html>
<html lang="en-US">
<head>
    <title>Web Chat: Full-featured bundle with ES5 polyfills</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!--
      For demonstration purposes, we are using the development branch of Web Chat at "/master/webchat.js".
      When you are using Web Chat for production, you should use the latest stable release at "/latest/webchat.js",
      or lock down on a specific version with the following format: "/4.1.0/webchat.js".
    -->
    <script src="https://cdn.botframework.com/botframework-webchat/latest/webchat-es5.js"></script>
    <style>
        html, body {
            height: 100%
        }

        body {
            margin: 0
        }

        #webchat {
            height: 100%;
            width: 100%;
        }
    </style>
</head>
<body>
    <div id="webchat" role="main">

    </div>
    <script>
        const token = 's7W';

        const styleOptions = {
            botAvatarImage: '',
            botAvatarInitials: 'BF',
            userAvatarImage: '',
            userAvatarInitials: 'WC',
            bubbleBackground: 'rgba(0, 0, 255, .1)',
            bubbleFromUserBackground: 'rgba(0, 255, 0, .1)'
        };
        var d = new Date();
        var tzoffset = d.getTimezoneOffset();
        const store = window.WebChat.createStore(
            {},
            function (_ref) {
                const dispatch = _ref.dispatch;
                return function (next) {
                    return function (action) {
                        if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
                            dispatch({
                                type: 'WEB_CHAT/SEND_EVENT',
                                payload: {
                                    name: 'webchat/join',
                                    value: tzoffset.toString()
                                }
                            });
                        }
                        return next(action);
                    };
                };
            });

        window.WebChat.renderWebChat({
            directLine: window.WebChat.createDirectLine({ token: token }),
            styleOptions: styleOptions,
            store: store,
            webSpeechPonyfillFactory: window.WebChat.createBrowserWebSpeechPonyfillFactory()
        }, document.getElementById('webchat'));
        document.querySelector('#webchat > *').focus();
    </script>
</body>
</html>

在浏览器或网络渠道中。

我的查询是:

我想将条件保留在自适应卡中,例如:

  1. 检查必填字段值,
  2. 根据下拉菜单中选择的特定值显示容器
  3. 如何使用REGEX检查电子邮件值是否有效
  4. 如何检查给定容器中的值(根据下拉菜单中选择的值显示),即强制性值验证?

我认为这必须通过使用JavaScript来完成,该JavaScript应该嵌入在背面的HTML页面中,但是问题是我不确定如何?因为我是JavaScript的新手。

请通过逐步或以指南的方式提供详细信息来帮助我解决查询或问题,因为我对javascript和es5捆绑包中的代码非常陌生。

我随附了ChatBot的当前HTML文件,以供参考,其中我使用了几行HTML脚本或其他一些东西,借助Web以及我以前使用es5软件包在ChatBot上遇到的一些问题。

更新查询以提高清晰度,2019年10月29日:

我有一个带有以下容器的自适应卡:

  • 容器1:需要填写的文字很少
  • 容器2:很少选中的复选框
  • 容器3:一个下拉选项,其中具有1、2或Both作为选项
  • 容器4:很少有其他文本框可输入
  • 最后:所有容器外侧的提交按钮

我的查询如下:

  1. 如果在容器3的下拉菜单中选择2或两者作为选项,则仅应显示容器4。如果选择1,则应禁用或隐藏容器4。是否可以通过JavaScript或C#代码或任何其他设置来实现?如果是,那么如何处理,因为我对编码很陌生,请逐步详细解释。

  2. 我们可以在提交自适应卡中的数据时进行强制性值验证吗,即按照我上面修改的说明,如果我在不输入容器1中提供的文本输入的情况下单击“提交”,则我应该会弹出或出现任何错误消息没有提供强制值?是否可以通过自适应卡中的一些JavaScript或C#来实现(如果可以的话),因为我对编码很陌生,请逐步详细解释。

  3. 文本输入之一是电子邮件,如何对电子邮件输入进行验证,其中用户可以提供多个以分号(;)分隔的电子邮件,但该值应采用正确的电子邮件格式,例如[email protected]我们如何在自适应卡中提供这种验证?

凯尔·德莱尼(Kyle Delaney)

使用自适应卡的内置功能,您所要求的一切都无法在客户端实现。如果您不想使用自己的Adaptive Cards渲染器构建自己的Direct Line客户端(这将非常困难),那么您要么必须对解决方法感到满意,要么必须重新考虑您的设计规格。您实际上并没有提供带有JSON或屏幕截图的相关卡片草稿,因此我有点盲目。

如果在容器3的下拉菜单中选择2或两者作为选项,则仅应显示容器4。如果选择1,则应禁用或隐藏容器4。是否可以通过JavaScript或C#代码或任何其他设置来实现?

此处的常规解决方案是仅使用多个卡。等到用户从“容器3”中选择一个选项,然后将该信息发送到机器人,然后机器人可以根据用户选择的内容发送下一张卡。

或者,您可以摆脱容器3并根据用户填写卡的哪些部分来推断用户的选择。您也许可以将容器4放入ShowCard动作中以表明它是可选的。

我们可以在提交自适应卡中的数据时进行强制性值验证吗,即按照我上面修改的说明,如果我在不输入容器1中提供的文本输入的情况下单击“提交”,则我应该会弹出或出现任何错误消息没有提供强制值?

文本输入之一是电子邮件,如何对电子邮件输入进行验证,其中用户可以提供多个以分号(;)分隔的电子邮件,但该值应采用正确的电子邮件格式,例如[email protected]我们如何在自适应卡中提供这种验证?

同样,除非您构建自己的客户端,否则这不可能在客户端实现,尽管这可以在机器人端实现。当您的漫游器从自适应卡获得用户的响应时,该漫游器可以对其进行验证,然后仅向用户发送一条消息,说明出了什么问题并要求他们再试一次。最终会有一些软件包可以帮助您完成此任务,与此同时,您可以查看此DCR以获取可以做的事的示例。您可能也有兴趣阅读我的最新博客文章以获取更多信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用 Bot Framework SDK v4 在 MS Teams 中呈现自适应卡片

来自分类Dev

MS Bot Framework nodejs sdk:在自适应卡中显示长文本

来自分类Dev

在 Microsoft Bot Framework 的 sdk v4 中使用 FormDialog

来自分类Dev

如何使用 Bot Framework V4 C# SDK 在 Teams 中迁移 1:1 主动消息功能

来自分类Dev

我想知道如何使用Bot Framework SDK for python来设置自适应卡的主机配置

来自分类Dev

如何将来自用户的消息存储在表存储中?(Microsoft Bot Framework SDK4和C#)

来自分类Dev

如何使用 Microsoft bot 框架 SDK3 C# 在 Microsoft 团队中显示欢迎消息

来自分类Dev

Microsoft Bot Framework Client SDK

来自分类Dev

如何在Microsoft Bot Framework + C#中安排任务?

来自分类Dev

如何在Microsoft Bot Framework + C#中安排任务?

来自分类Dev

空botId-Microsoft Bot Framework SDK V3

来自分类Dev

如何在使用C#BOT Framework SDK V4构建的瀑布对话框中调用AZURE DEVOPS rest API?

来自分类Dev

在Bot Framework v4中,如何使用评论框和提交按钮实施评分卡

来自分类Dev

如何为 sdk v4 Bot 的消息添加语音

来自分类Dev

如何在Bot Framework v4中形成英雄卡轮播

来自分类Dev

使用 Bot Framework C# v4 的动态提示

来自分类Dev

Bot Framework:如何在 Node.js SDK 中创建菜单?

来自分类Dev

Bot Framework V3,如何使用 c# 在自适应卡片中获取相邻的提交操作按钮

来自分类Dev

AdaptiveCard Bot Framework V4 中的日语字符

来自分类Dev

在Bot Framework sdk v4 nodeJS中发送列表项

来自分类Dev

如何在提交操作时编辑MS Bot Framework自适应卡

来自分类Dev

MS BOT Framework(自适应卡):如何从直接线发送值(Stepcontext.Value)

来自分类Dev

Microsoft Bot Framework (SDK4 Nodejs):如何让机器人使用 api 执行诸如客户身份验证之类的操作?

来自分类Dev

如何在Microsoft Bot Framework中给出延迟的响应

来自分类Dev

如何解决Microsoft Bot Framework中的内容类型错误?

来自分类Dev

如何解决Microsoft Bot Framework中的内容类型错误?

来自分类Dev

Microsoft Bot Framework中的C#.net或Node.Js?

来自分类Dev

C#登录bot,.Net Framework 4

来自分类Dev

可以将深度学习模型与Microsoft Bot Framework(SDK)一起使用吗?

Related 相关文章

  1. 1

    无法使用 Bot Framework SDK v4 在 MS Teams 中呈现自适应卡片

  2. 2

    MS Bot Framework nodejs sdk:在自适应卡中显示长文本

  3. 3

    在 Microsoft Bot Framework 的 sdk v4 中使用 FormDialog

  4. 4

    如何使用 Bot Framework V4 C# SDK 在 Teams 中迁移 1:1 主动消息功能

  5. 5

    我想知道如何使用Bot Framework SDK for python来设置自适应卡的主机配置

  6. 6

    如何将来自用户的消息存储在表存储中?(Microsoft Bot Framework SDK4和C#)

  7. 7

    如何使用 Microsoft bot 框架 SDK3 C# 在 Microsoft 团队中显示欢迎消息

  8. 8

    Microsoft Bot Framework Client SDK

  9. 9

    如何在Microsoft Bot Framework + C#中安排任务?

  10. 10

    如何在Microsoft Bot Framework + C#中安排任务?

  11. 11

    空botId-Microsoft Bot Framework SDK V3

  12. 12

    如何在使用C#BOT Framework SDK V4构建的瀑布对话框中调用AZURE DEVOPS rest API?

  13. 13

    在Bot Framework v4中,如何使用评论框和提交按钮实施评分卡

  14. 14

    如何为 sdk v4 Bot 的消息添加语音

  15. 15

    如何在Bot Framework v4中形成英雄卡轮播

  16. 16

    使用 Bot Framework C# v4 的动态提示

  17. 17

    Bot Framework:如何在 Node.js SDK 中创建菜单?

  18. 18

    Bot Framework V3,如何使用 c# 在自适应卡片中获取相邻的提交操作按钮

  19. 19

    AdaptiveCard Bot Framework V4 中的日语字符

  20. 20

    在Bot Framework sdk v4 nodeJS中发送列表项

  21. 21

    如何在提交操作时编辑MS Bot Framework自适应卡

  22. 22

    MS BOT Framework(自适应卡):如何从直接线发送值(Stepcontext.Value)

  23. 23

    Microsoft Bot Framework (SDK4 Nodejs):如何让机器人使用 api 执行诸如客户身份验证之类的操作?

  24. 24

    如何在Microsoft Bot Framework中给出延迟的响应

  25. 25

    如何解决Microsoft Bot Framework中的内容类型错误?

  26. 26

    如何解决Microsoft Bot Framework中的内容类型错误?

  27. 27

    Microsoft Bot Framework中的C#.net或Node.Js?

  28. 28

    C#登录bot,.Net Framework 4

  29. 29

    可以将深度学习模型与Microsoft Bot Framework(SDK)一起使用吗?

热门标签

归档