Bot Channels Registration - 向您的 bot 发送此消息时出错:HTTP 状态代码未经授权
Bot Channels Registration - There was an error sending this message to your bot: HTTP status code Unauthorized
我正在构建一个将与 Teams 或 Slack 集成的聊天机器人。首先,我使用 echo bot 模板,但我将其添加到我的 Service Fabric 集群中现有的 API。
当 运行 在本地应用程序时,我可以从 Bot Emulator 很好地连接到它,但是当我将它部署到我的 Azure 频道注册并在网络聊天中测试它时,我得到:
There was an error sending this message to your bot: HTTP status code Unauthorized.
我正在设置 AppID 和密码,它们被保存并从 KeyVault 中检索,如果其中一个值为空(实际情况并非如此),我会在启动时抛出异常。
我设置如下:
services.AddBot<EchoBot>(options =>
{
options.CredentialProvider = new SimpleCredentialProvider(Configuration["MicrosoftAppId"], Configuration["MicrosoftAppPassword"]);
options.OnTurnError = async (context, exception) =>
{
ServiceEventSource.Current.Message(exception.Message);
await context.SendActivityAsync("Sorry, it looks like something went wrong.");
};
});
我已经添加了一个团队频道,那里没有发生错误,但是消息永远不会到达服务器。
该服务是可访问的,控制器允许未经授权的凭据,而这正在测试中。
解决了我自己的问题。
事实证明,如果您使用的是自签名证书,则可能会发生这种情况,根据发现的 Microsoft 文档 here -
如果聊天中指出一个或多个错误 window,请单击错误以获取详细信息。常见问题包括:
- 模拟器设置为机器人指定了错误的端点。确保在 URL 中包含正确的端口号,并在 URL 末尾包含正确的路径(例如,/api/messages)。
- 模拟器设置指定了一个以 https 开头的机器人端点。在本地主机上,端点应以 http.
开头
- 在模拟器设置中,Microsoft App ID 字段 and/or Microsoft App Password 不包含有效值。应填充这两个字段,并且每个字段应包含您在第 2 步中验证的相应值。
- 尚未为机器人启用安全性。确认机器人配置设置指定了应用 ID 和密码的值。
经验教训
阅读文档
当你感到沮丧时,静下心来阅读文档
我正在构建一个将与 Teams 或 Slack 集成的聊天机器人。首先,我使用 echo bot 模板,但我将其添加到我的 Service Fabric 集群中现有的 API。
当 运行 在本地应用程序时,我可以从 Bot Emulator 很好地连接到它,但是当我将它部署到我的 Azure 频道注册并在网络聊天中测试它时,我得到:
There was an error sending this message to your bot: HTTP status code Unauthorized.
我正在设置 AppID 和密码,它们被保存并从 KeyVault 中检索,如果其中一个值为空(实际情况并非如此),我会在启动时抛出异常。
我设置如下:
services.AddBot<EchoBot>(options =>
{
options.CredentialProvider = new SimpleCredentialProvider(Configuration["MicrosoftAppId"], Configuration["MicrosoftAppPassword"]);
options.OnTurnError = async (context, exception) =>
{
ServiceEventSource.Current.Message(exception.Message);
await context.SendActivityAsync("Sorry, it looks like something went wrong.");
};
});
我已经添加了一个团队频道,那里没有发生错误,但是消息永远不会到达服务器。
该服务是可访问的,控制器允许未经授权的凭据,而这正在测试中。
解决了我自己的问题。 事实证明,如果您使用的是自签名证书,则可能会发生这种情况,根据发现的 Microsoft 文档 here -
如果聊天中指出一个或多个错误 window,请单击错误以获取详细信息。常见问题包括:
- 模拟器设置为机器人指定了错误的端点。确保在 URL 中包含正确的端口号,并在 URL 末尾包含正确的路径(例如,/api/messages)。
- 模拟器设置指定了一个以 https 开头的机器人端点。在本地主机上,端点应以 http. 开头
- 在模拟器设置中,Microsoft App ID 字段 and/or Microsoft App Password 不包含有效值。应填充这两个字段,并且每个字段应包含您在第 2 步中验证的相应值。
- 尚未为机器人启用安全性。确认机器人配置设置指定了应用 ID 和密码的值。
经验教训
阅读文档
当你感到沮丧时,静下心来阅读文档