用 C# 开发的 Bot 在 Microsoft 团队中不显示 Adaptive Card

Bot developed in C# not showing Adaptive Card in microsoft teams

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

我已经恢复使用标准的 Microsoft 航班预订代码,它也与该代码相同,所以这让我相信我缺少一个更基本的步骤。

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

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

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

知道为什么这个简单的例子不起作用吗?我找了几天都没有成功!

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

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

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