我已经设置了一个连接到我的机器人端点的机器人注册通道。它在Bot Framework Emulator中工作得很好。
我在通过Azure门户上的“在网络聊天中测试”页面连接到我的机器人时遇到问题。我试图发送一条消息,但什么也没有发生,消息下面只看到“正在发送”。
然后,我将转到刀片中的"channels“选项卡,并看到web-chat的错误:There was an error sending this message to your bot: HTTP status code Unauthorized。
当我尝试向微软团队中的机器人发送消息时,绝对没有任何反应。我甚至没有得到一个错误。在Azure门户上的健康状态下,它只显示"Running“。
不过,让我的机器人在网络聊天中工作并不是首要任务。我真的希望它最终能在团队中发挥作用。
发布于 2019-12-08 18:36:53
想要发表评论,但没有足够的分数。授权有几个不同的原因。当创建机器人注册时,有一个选项“只允许来自这个组织的帐户”,这需要额外的配置,所以如果你选择了这个,那么将它更改为任何帐户。
此外,您通常可以从服务器端获得更详细的错误消息(不会显示给使用403的用户)。转到Azure门户中机器人的应用程序服务,然后转到左侧菜单底部附近的“应用程序服务日志”。启用“应用程序日志(文件系统)”(我也希望设置为详细并启用“详细的错误消息”)。现在转到左侧菜单中的"Log stream“。它现在应该已连接。尝试再次访问bot,查看日志流中有哪些消息。
如果您启用Application Insights,这也会有所帮助
发布于 2019-12-22 17:27:59
机器人不被调用的主要原因是地址不正确(要么是地址的某个部分的根位置,这取决于你是如何托管它的。例如,一个Azure函数会自动在路径的前面添加一个额外的"/api“),或者,正如你所发现的,AppId和AppPassword没有被正确提取。
如果是后者,就像这里听起来的那样,那么原则上它是一个简单的修复-你只需要确保你的AppId和AppPassword是(a)来自门户的正确的和(b)在你的机器人配置中正确使用的。
问题出现在上面的(b)中--互联网上有一大堆不同的样本,来自微软和其他公司,用于C#和Node,他们使用大量不同的方法来实例化机器人并设置它的AppId和AppPassword。例如,其中一些示例在内部使用了“apppassword”的实现,它将尝试从配置文件中拉出appid/apppassword,但当然希望它们位于一组专门命名的值中(有关更多信息,请参阅here )。
那么,你能检查一下你是如何实现你的机器人的,看看凭证是在哪里设置的吗?
https://stackoverflow.com/questions/59215264
复制相似问题