首页 > 解决方案 > 允许聊天机器人使用多个 Microsoft 应用 ID

问题描述

我有一个可以在 localhost 上运行的聊天机器人,它运行良好。然后,我在 Azure 上添加了一个新的 Bot Channels Registration 进行测试,效果也很好。我通过获取它的 Microsoft App ID 和密码并将其放入我的 appsettings.json 文件中来做到这一点。

但是,我需要添加另一个机器人频道注册。当我对该注册进行测试时,我的机器人返回 401 未经授权的错误。这是因为它有一个新的 App ID 和密码。但是我已经从我的第一个注册渠道输入了 App ID 和密码。我需要他们两个工作。

如何允许我的聊天机器人接受多个 App ID 和密码?或者我如何完全摆脱这种安全级别(即允许所有应用程序 ID 和密码)?

标签: botframeworkazure-bot-service

解决方案


正如@Mick 建议的那样,答案是为每个通道创建一个机器人适配器。如果你想要它真正动态,你可以做这样的事情:

机器人控制器.cs

[HttpPost, HttpGet]
public async Task PostAsync()
{
    var credentialProvider = new SimpleCredentialProvider(YourAppId, YourAppPassword); // for each adapter
    Adapter = new BotFrameworkHttpAdapter(credentialProvider); // for each adapter
    await Adapter.ProcessAsync(Request, Response, Bot);
}

推荐阅读