通过 AppId/BotId 注册时,Teams 如何知道 Azure Bot Service 机器人的端点?

How does Teams know the endpoint of an Azure Bot Service bot when registering it via the AppId/BotId?

我的 bot 已部署到 Azure 的 Bot Service,我启用了 Teams 频道并已成功将其连接到 Teams。但是,我不明白的是 为什么 它能正常工作! :-)

在 Teams 的“App Studio”中设置机器人时,UI 如下面的屏幕截图所示。 我不使用“Select 来自我现有的一个机器人”,因为该机器人是使用不同的用户帐户部署的。相反,我只粘贴机器人的 AppId,使用“连接到不同的机器人 ID”:

我的问题是:

[又是我:])

看看我在 how bots work 'under the covers' 上的博客 post - 它会解释返回和转发的工作原理,以及 Bot Framework Services 如何提供此 'glue', 可以这么说。

问题 1 的答案: 托管网络服务时,会生成一个消息传递端点,它通过机器人服务进行路由。 Webservice 需要您的机器人注册中的 App ID 和密码才能连接。

问题 2 的答案: 出于测试目的,Teams 在团队中启用了一个 create/register 机器人,并且该机器人的范围在团队频道内,因为它不是托管机器人。

带有您的应用程序清单的 Teams 应用程序包,您将安装它,其中提供的应用程序 ID 将 Teams 客户端连接到您的 Web 服务,通过机器人服务路由。 主要是,Teams 应用程序依赖 App ID(Microsoft 为应用程序生成的唯一标识符)来连接您的 Web 服务,而不是密码。

如果您通过 Microsoft Bot Framework 注册了一个机器人,您应该已经有一个 ID。否则,您应该生成一个新 ID,然后在添加机器人时重新使用它。

APP ID 和密码都将被强制用于某些目的,例如身份验证。