node.js - 机器人在网络聊天中工作,但在团队 channel 中不起作用

标签 node.js botframework microsoft-teams azure-bot-service

我创建了一个具有机器人功能的示例 Teams 应用程序,从 https://github.com/OfficeDev/microsoft-teams-sample-complete-node/tree/master/src 克隆。它使用 ngrok 隧道在本地运行,并且机器人在 Azure 机器人 channel 注册上注册。

Azure 上的“网络聊天测试”工作正常,当我发起聊天时,机器人会发送一条欢迎消息。当我输入“hello”时,机器人会回复“Hello”。

当我启用 Microsoft Teams channel 时,我单击 channel 页面上的链接,这使我可以与机器人进行一对一对话。浏览器控制台已经打印出错误: browser screenshot

当我在聊天中输入“hello”时,聊天会跳转到“Just me” channel 。机器人仅回复欢迎消息,但不回复预期的“Hello”:chat screenshot

本地ngrok显示conversationUpdate到达机器人,我认为这会触发欢迎消息,但没有短信到达ngrok:ngrok sreenshot

文档 Talk to your bot directly by Id建议我应该能够使用订阅 ID 在 Teams 内部进行搜索,但找不到机器人。这是否表明 Teams channel 的配置方式存在问题?

我尝试按照上面示例存储库中的说明将其打包到应用程序中并导入到团队中。该应用程序具有指向同一本地 ngrok 隧道服务的选项卡,这些选项卡已成功加载。但是当我在对话选项卡中输入内容时,该消息立即消失。对话更新和短信均未到达 ngrok。

最佳答案

这是 Teams 缓存问题。如果您的机器人部署为完整的“Web 应用机器人”,您将必须删除并重新部署它。如果它部署为具有匹配的机器人 channel 注册的 Web 应用程序,您只需删除机器人 channel 注册并重新创建它即可。它现在永久地与“Just Me”绑定(bind),即使它被修复,对话也永远不会出现在它自己的聊天中,并将保留在“Just Me”中。

关于node.js - 机器人在网络聊天中工作,但在团队 channel 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58408589/

相关文章:

botframework - 使用 Graph API 在 Microsoft Teams 的机器人 channel 中将消息作为机器人发送给用户

microsoft-graph-api - Microsoft Graph API GET onlineMeeting 通过 joinUrl

node.js - 如何使用 MS Team 机器人在最终用户/客户端计算机上运行命令/代码

javascript - NodeJS https 服务器使用 express 返回 ERR_SSL_PROTOCOL_ERROR

testing - Skype 机器人是否由 Botium 自动化?

javascript - 当它无法识别时,我如何使用等待?

c# - 根据 QnAMaker 中的输入对结果进行排名

javascript - Microsoft Bot Framework - 读取机器人文件时出错,但所有环境变量都正确?

node.js - 使用 Node js 在 mongodb 中过滤对象子对象

javascript - 设置 mongo 的更好方法是什么?