通过 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”:
我的问题是:
- Teams 如何知道机器人的端点是什么?它是否使用 ID 作为密钥在某处调用全局(?)机器人注册表?
- 为什么 Teams 不需要机器人的密码(使用 Bot Framework Emulator 时,需要应用程序 ID 和 密码)?
- 如果我在
appsettings.json
和 运行 本地机器人中将 MicrosoftAppId
和 MicrosoftAppPassword
设置为非空字符串,我 必须 在使用 Bot Framework Emulator 时提供这些凭据,否则返回 401。
- 如果 bot 部署到 Azure 并且我将 Teams 连接到它,我从不指定密码(见我的屏幕截图)但 仅指定应用程序 ID。尽管如此,我还是可以通过 Teams 与机器人交谈。
- 如果你知道我的应用程序 ID,你可以使用我的 bot...?
[又是我:])
看看我在 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 和密码都将被强制用于某些目的,例如身份验证。
我的 bot 已部署到 Azure 的 Bot Service,我启用了 Teams 频道并已成功将其连接到 Teams。但是,我不明白的是 为什么 它能正常工作! :-)
在 Teams 的“App Studio”中设置机器人时,UI 如下面的屏幕截图所示。 我不使用“Select 来自我现有的一个机器人”,因为该机器人是使用不同的用户帐户部署的。相反,我只粘贴机器人的 AppId,使用“连接到不同的机器人 ID”:
我的问题是:
- Teams 如何知道机器人的端点是什么?它是否使用 ID 作为密钥在某处调用全局(?)机器人注册表?
- 为什么 Teams 不需要机器人的密码(使用 Bot Framework Emulator 时,需要应用程序 ID 和 密码)?
- 如果我在
appsettings.json
和 运行 本地机器人中将MicrosoftAppId
和MicrosoftAppPassword
设置为非空字符串,我 必须 在使用 Bot Framework Emulator 时提供这些凭据,否则返回 401。 - 如果 bot 部署到 Azure 并且我将 Teams 连接到它,我从不指定密码(见我的屏幕截图)但 仅指定应用程序 ID。尽管如此,我还是可以通过 Teams 与机器人交谈。
- 如果你知道我的应用程序 ID,你可以使用我的 bot...?
- 如果我在
[又是我:])
看看我在 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 和密码都将被强制用于某些目的,例如身份验证。