Microsoft Bot 中的相同线程重复欢迎消息

2024-02-14

我有一条欢迎消息,配置为在我的机器人第一次启动时出现在 MessagesController 中。

    private Activity HandleSystemMessage(Activity message)
    {
        if (message.Type == ActivityTypes.ConversationUpdate)
        {
            // returning a msg here to the Post method in MessagesController.
        }
    }

当我调试时,似乎在启动时,两个线程正在运行机器人,并且两个线程都在 Post 方法中执行,因此两个线程都在调用处理系统消息。这对我来说是一个问题,因为有两个线程执行该方法,我的欢迎消息在屏幕上打印两次。

我尝试锁定打印消息并将其中一个线程置于睡眠状态,但没有任何效果。我不知道为什么一开始就有两个线程在执行。

它们有必要吗?它们都运行相同的执行。我可以杀掉其中一个吗?或者是否有不同的方式来打印机器人的欢迎消息?


当 Web 通道和机器人之间建立第一个对话时,ConversationUpdate 活动会引发两次。一次由用户发出,另一次由渠道发出,因此我们收到两次欢迎消息。 我们需要确保发送针对用户提出的活动的欢迎消息。

这段代码帮助我避免了这个问题。

 private async Task GreetUserAsync(ITurnContext turnContext, CancellationToken cancellationToken)
    {
        if (turnContext.Activity.Type == ActivityTypes.ConversationUpdate && 
            turnContext.Activity.MembersAdded[0].Id.Contains(turnContext.Activity.Recipient.Id))
            await turnContext.SendActivityAsync(MessageFactory.Text("Hi, how can I help you."));
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Microsoft Bot 中的相同线程重复欢迎消息 的相关文章

  • 从 Postman 向 Microsoft Bot 发送消息

    我正在尝试向我创建并发布到 azure 服务的机器人发送消息 以便该机器人可以开始向其某些用户发送消息 我尝试首先在 Postman 上发出请求 然后我可以为该交互构建一个控制器 我正在执行以下请求 POST https login mic
  • 仅通知 Teams 机器人的服务 URL

    我正在开发一个仅通知团队机器人 仅限于单个天蓝色广告租户的成员 根据本文档 https learn microsoft com en us microsoftteams platform resources bot v3 bots cont
  • 如何阻止不良的身份不明的机器人爬行我的网站?

    我怎样才能抵御不良的不明机器人爬行我的网站 一些名称未出现在 Apache cPanel 中的恶意机器人正在严重访问我的网站带宽 我曾在 batgap com robots txt 上尝试过 robots txt 也使用 htaccess
  • 微软机器人框架自行崩溃[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我收到这个令牌请求 error invalid request error description AADSTS90002 No
  • Microsoft Botframework:与 Bot 通道直接对话

    我一直在努力从 C 控制台应用程序向托管在 Azure 中的 Skype 机器人发送直接消息 但我不断收到错误 操作返回无效的状态代码 未经授权 但我提供了以下凭据 Web 配置文件
  • BOT/蜘蛛陷阱创意

    我有一个客户 他的域名似乎受到 DDoS 攻击的严重打击 在日志中 看起来很正常的具有随机 IP 的用户代理 但它们翻阅页面的速度太快 不像人类 他们似乎也没有要求任何图像 我似乎找不到任何模式 我怀疑这是一群 Windows 僵尸 客户过
  • 如何在表单对话框中接收附件?

    我目前有一个机器人对话框 它请求并接收用户的附件 我想将其转换为表单对话框 因为我认为这更适合 请向我发送文档1 直到文档N 您能给我指出一个接收用户附件的表单对话框的示例吗 我读到 FormFlow 现在支持附件 https github
  • Botconnector 不适用于自签名的 Nodejs 机器人

    我创建了一个简单的机器人 自签名 ssl 证书 显然这不适用于机器人连接器 几秒钟后 我从机器人收到以下错误 error code BadCertificate message An error occurred while sending
  • 如何区分“消息”更新和“回调查询”更新? (电报机器人 API)

    抱歉 如果我的问题太混乱了 我是新来的 所以欢迎任何建议 如何区分 消息 更新和 回调查询 更新 我已经成功制作了一个内联键盘 但是当我使用它时 机器人只是挂起 他没有回复任何内容 我做了一些研究发现这个问题 https stackover
  • 有没有办法在机器人框架中接受文件作为附件?

    我已在 Microsoft 团队中发布了我的机器人 现在我想包含一个功能 用户可以将文件作为附件上传 机器人会将其上传到 blob 存储中 如何在机器人框架中处理此问题 用户发送的附件将最终出现在AttachmentsIMessageAct
  • 在 C# 中实现动态 Web Scraper 的逻辑

    我希望在 C 窗口窗体中开发一个 Web scraper 我想要完成的任务如下 从用户处获取 URL 在WINForms中的IE UI控件 嵌入式浏览器 中加载网页 允许用户选择文本 连续 小 不超过 50 个字符 从加载的网页 当用户希望
  • 有已知网络爬虫的列表吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试获取网络服务器上某些文件的准确下载数量 我查看了用户代理 其中一些显然是机器人或网络爬虫 但
  • 如何结束谈话?

    我已经使用 Bot Framework 创建了一个机器人 并且正在使用conversationID用我的后端对话引擎维护状态 我在文档中找不到用于结束对话的信息 至关重要的是 在某些时候 用户能够发出对话 结束或退出 的信号 以便下次他们开
  • Microsoft Bot 在 WebChat 中显示不必要的重复消息?

    当用户第一次访问我的聊天室时 他们会收到欢迎消息 并立即被要求提供他们的名字 一旦用户输入他们的名字 就会出现欢迎消息 并再次显示输入名字的文本提示 只有在他们第二次输入名字后 机器人才会继续处理下一个有关姓氏的问题 此外 当用户最终在第一
  • 机器人通道注册:“Microsoft.AppRegPortal.Providers.Graph.GraphException”类型的异常

    在 Azure 机器人通道注册上创建机器人通道并尝试在 apps dev microsoft com 上添加 Microsoft Graph 规则后 出现异常 机器人通道注册 引发 Microsoft AppRegPortal Provid
  • 尝试使用锐利的 Node.js 调整流图像的大小

    我正在尝试使用锐利功能调整从用户到服务器的输入流图像的宽度和高度 但图像没有任何反应 它保持原来的大小 我应该如何使用锐化功能 以便我可以使图像变小或变大 请帮我 这就是我的代码的样子 use strict const builder re
  • 更改 botframework Formflow 中的确认选项

    我在 botframework 中创建了一个表单流 我想更改确认选项 默认情况下需要 是 和 否 但我希望它继续进行 而不是 是 即使用户输入 确定 是 是 等 我如何添加确认选项 您需要将新条款添加到YesFormBuilder 配置的数
  • 自动更改 github 文件

    我制作了一个带有白名单的应用程序 withelist 位于 github 存储库上 只有一个文件 即 withelist 每次下载我的应用程序的用户想要被允许使用该应用程序时 都必须向我发送一个消息插入白名单 现在这个过程真的很慢 我想加快
  • Phantom JS 50% 的时间失败

    我搜索一个文本框 然后尝试用字符串填充它 这是代码 var fname driver FindElement By Name iFirstName 50 if fname null do System Threading Thread Sl
  • 电报机器人预填充文本供用户编辑

    Telegram 机器人向我发送一条带有文本片段的消息 我想要编辑该文本片段 然后发送回机器人进行进一步处理 复制和粘贴需要时间 重新输入消息需要时间 理想情况下 我想按机器人消息上的内联按钮 编辑 并使消息文本出现在我的回复输入框中进行编

随机推荐