首页 > 解决方案 > 如何清除 Bot Builder SDK for .NET 中的消息

问题描述

我想使用 Bot Builder SDK for .NET 清除以前的聊天消息。是否有任何选项可以清除 Bot Dialogue 的消息 C# 代码。

寻找一些选项来清除屏幕截图中的所有消息,方法是按一些“清除”按钮

使用 BOT 的示例屏幕截图

标签: botframeworkbots

解决方案


我想使用 Bot Builder SDK for .NET 清除以前的聊天消息。是否有任何选项可以清除 Bot Dialogue 的消息 C# 代码。

您将机器人配置为连接到网络聊天频道,消息可以从机器人发送到嵌入网络聊天控件的网站应用程序。正如我和@MarkB 在评论中提到的,要清除网站内网络聊天窗口中呈现的消息,您可以构建和使用自定义的网络聊天控件。我构建了一个自定义的网络聊天并实现了清除消息的功能,你可以参考它。

1)添加清除按钮,实现按钮点击事件清除消息功能Chat.tsx

{
    !!state.format.chatTitle &&
        <div className="wc-header">
            <span>{ typeof state.format.chatTitle === 'string' ? state.format.chatTitle : state.format.strings.title }</span>
        </div>

}
{
    <button className="wc-clear" onClick={ () => this.onClickClear() }>
        <span>Clear Messages</span>
    </button>
}

实施onClickClear

/*remove messages*/

private onClickClear() {
    /*alert("111");*/
    Array.from(document.getElementsByClassName("wc-message-wrapper"))
    .forEach(element => element.remove());
}

2) 指定清除按钮的样式botchat.scss

.wc-clear{
    background-color:#0078d7;
    box-shadow: 0 1px $c_shadow;
    box-sizing: content-box;
    color: $c01;
    font-weight: 500;
    height: $headerTotalHeight - $headerPaddingTop - $headerPaddingBottom;
    /*left: 0;*/
    letter-spacing: 0.5px;
    padding: $headerPaddingTop $headerPaddingRight $headerPaddingBottom $headerPaddingLeft;
    position: relative;
    /*right: 0;
    top: 0;*/
    display: block;
    float: right;
    z-index: 1;
    border: 0 !important;
}

3)构建我们自己的版本网络聊天并在网站上使用它

测试结果:

在此处输入图像描述

或者您可以使用反向通道机制将特定事件活动发送到您的网络聊天客户端,然后网络聊天客户端侦听该特定事件并'wc-message-wrapper'通过通过 JavaScript 删除所有具有类的元素来清除以前的消息。

我们正在通过 ChatBot 提供一些 SQL 报告

如果您想在您的机器人应用程序中访问您的 SQL 数据库MessagesControllerDialog您可以使用和利用熟悉的 ORM 框架。此外,如果您想从托管在 Azure 上的机器人应用程序连接到本地数据库,可以参考这篇文章


推荐阅读