c# - 用 C# 开发的 Bot 在微软团队中没有显示自适应卡
问题描述
当我创建一个机器人并向用户发送一张简单的自适应卡片作为欢迎消息时,在网络聊天中我看到这张卡片很好,但是当我将同一张卡片发送给 Teams 时,卡片永远不会显示。
我已恢复使用标准的 Microsoft 航班预订代码,并且该代码也相同,因此这使我相信我缺少一个更基本的步骤。
我正在使用 C# 在 Visual Studio 2019 上使用 .Net core 3.1。
我正在使用 ngrok 生成一个我在 Azure 中用来连接我的机器人的 URL。当我在 azure webchat 测试中进行测试时,它工作正常,我看到了欢迎消息和图像,但是当我在团队中设置机器人时,我根本看不到卡片。
我得到的只是欢迎卡后得到的文字。
任何想法为什么这个简单的例子不起作用?我已经搜索了几天没有任何成功!
解决方案
你只会在 Teams 中看到一次“欢迎”文本 - 第一次安装机器人。实际上,对于纯粹的“开发”场景,您最终可能会完全错过它,例如,如果机器人像 ngrok 一样在本地运行(正如您提到的),并且您忘记启动机器人但仍然将其安装在 Teams 中, “MembersAdded”事件永远不会到达您的机器人。
在模拟器中并非如此,因为您可以随时轻松地在模拟器中重新开始对话。Teams 没有这种能力。
有几个选项可以解决这个问题,特别是如果您不想从头开始。您可以使用 App Studio 设计卡片,它可以选择使用 App Studio 机器人实际“发送”卡片。满意后,您可以将其迁移到您的实际项目中。要在上下文中查看它,您可以创建一个“隐藏”命令,可以说是触发您的机器人发送的卡片。例如,您可以让您的机器人查找传入消息“/welcomecard”,并随时通过重新发送卡片来对此做出反应。该命令并不是真正“隐藏”的,因为普通用户可以通过输入该文本来调用它,但它并不是很容易被发现。
推荐阅读
- favicon - 生活网站图标 - 他们是如何做到的
- java - 如何使用 JPA 注释双 varchar 主键?
- c - 我无法将 argc 和 argv 从命令行获取到函数调用中
- php - 无法使用 httpClient 将字符串上传到我的 SSL 服务器
- mysql - 如何使用一个自动生成的值创建复合主键?
- node.js - Node.Js、express、res.sendFile 无法建立根目录
- python - 使用 re.match() 查找以两个可能的字母开头的字符串
- python - 在网络服务器上运行的 Flask 应用程序以调用远程服务器 python 模块
- javascript - 将大写字母转换为小写字母,将小写字母转换为大写字母
- docker - 尝试使用 grpc 连接到 docker 容器时出错