botframework - 允许聊天机器人使用多个 Microsoft 应用 ID
问题描述
我有一个可以在 localhost 上运行的聊天机器人,它运行良好。然后,我在 Azure 上添加了一个新的 Bot Channels Registration 进行测试,效果也很好。我通过获取它的 Microsoft App ID 和密码并将其放入我的 appsettings.json 文件中来做到这一点。
但是,我需要添加另一个机器人频道注册。当我对该注册进行测试时,我的机器人返回 401 未经授权的错误。这是因为它有一个新的 App ID 和密码。但是我已经从我的第一个注册渠道输入了 App ID 和密码。我需要他们两个工作。
如何允许我的聊天机器人接受多个 App ID 和密码?或者我如何完全摆脱这种安全级别(即允许所有应用程序 ID 和密码)?
解决方案
正如@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);
}
推荐阅读
- java - 了解 OpenJDK 与 Oracle JDK 的使用
- css - 如何使用芯片输入Vue CSS点击textarea焦点
- command-line - 如何在 Mac 终端上运行从 F# 源编译的 EXE 文件?
- python - 图例中未对齐的标记和单词
- python - 如何使用 python 获取 TCP-Timestamp (TSval)
- php - 当我提交表单时,在 Laravel 5 中找不到对象
- xslt - 如何从 xslt 模板中的字符串中提取容量和数字?
- python - cffi 将 python 代码导出到 dll,如何在 @ffi.def_extern() 中读取图像对象
- css - 如何将 CSS 样式应用于 RMarkdown 中的段落?
- javascript - div元素左侧的间隙