首页 > 解决方案 > 用 C# 开发的 Bot 在微软团队中没有显示自适应卡

问题描述

当我创建一个机器人并向用户发送一张简单的自适应卡片作为欢迎消息时,在网络聊天中我看到这张卡片很好,但是当我将同一张卡片发送给 Teams 时,卡片永远不会显示。

我已恢复使用标准的 Microsoft 航班预订代码,并且该代码也相同,因此这使我相信我缺少一个更基本的步骤。

我正在使用 C# 在 Visual Studio 2019 上使用 .Net core 3.1。

我正在使用 ngrok 生成一个我在 Azure 中用来连接我的机器人的 URL。当我在 azure webchat 测试中进行测试时,它工作正常,我看到了欢迎消息和图像,但是当我在团队中设置机器人时,我根本看不到卡片。

网络聊天图像

我得到的只是欢迎卡后得到的文字。

团队形象

任何想法为什么这个简单的例子不起作用?我已经搜索了几天没有任何成功!

标签: c#azurebotsmicrosoft-teams

解决方案


你只会在 Teams 中看到一次“欢迎”文本 - 第一次安装机器人。实际上,对于纯粹的“开发”场景,您最终可能会完全错过它,例如,如果机器人像 ngrok 一样在本地运行(正如您提到的),并且您忘记启动机器人但仍然将其安装在 Teams 中, “MembersAdded”事件永远不会到达您的机器人。

在模拟器中并非如此,因为您可以随时轻松地在模拟器中重新开始对话。Teams 没有这种能力。

有几个选项可以解决这个问题,特别是如果您不想从头开始。您可以使用 App Studio 设计卡片,它可以选择使用 App Studio 机器人实际“发送”卡片。满意后,您可以将其迁移到您的实际项目中。要在上下文中查看它,您可以创建一个“隐藏”命令,可以说是触发您的机器人发送的卡片。例如,您可以让您的机器人查找传入消息“/welcomecard”,并随时通过重新发送卡片来对此做出反应。该命令并不是真正“隐藏”的,因为普通用户可以通过输入该文本来调用它,但它并不是很容易被发现。


推荐阅读