我创建了一个具有机器人功能的示例 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/