在将本地机器人连接到本地 WebChat 客户端时获取 403(尽管适用于模拟器)
Posted
技术标签:
【中文标题】在将本地机器人连接到本地 WebChat 客户端时获取 403(尽管适用于模拟器)【英文标题】:Getting a 403 while connecting local bot to local WebChat client (works with Emulator though) 【发布时间】:2020-12-28 23:19:31 【问题描述】:我正在尝试将我的本地网络聊天客户端连接到我的本地机器人,但它会抛出 403。我尝试将 localhost:3000
(我的网络聊天端口)添加为受信任的来源,但它仍然没有帮助。但是,如果我使用模拟器或邮递员(通过 Directline 连接的令牌生成部分),它就可以正常工作
这是我所做的一切:
启动我的本地机器人并使用 ngrok 将其映射到互联网地址。 将消息传递端点更改为https://xxxxx.ngrok.io/api/messages
配置了一个直连通道,获取密钥并在我的反应网络聊天客户端(在端口 3000 上运行)使用来自botframework-webchat
的createDirectLine
建立直连连接并传递一个令牌。我正在以这种格式访问此 API:
POST https://directline.botframework.com/v3/directline/tokens/generate
Authorization: Bearer SECRET
在此之后,控制台会抛出错误 403,并且不允许我继续进行。但是,我可以通过邮递员生成令牌,并且相同的 ngrok URL 非常适用于 bot 框架模拟器。
请帮助我理解我做错了什么。我花了一天的大部分时间研究如何完成这一步,非常感谢专家的意见。
谢谢。
【问题讨论】:
【参考方案1】:与机器人框架模拟器配合得很好
当您使用模拟器进行测试时,您使用的是用户名/密码,还是空白?确保在本地运行时在 bot 中配置了 MicrosoftAppID
和 MicrosoftAppPassword
,并且您正在使用 NGROK 通过渠道。
【讨论】:
我没有使用任何用户名或密码。它是空白的@dana-v 好的,当您通过 Azure 进行测试时(即使通过 ngrok 指向本地正在运行的机器人),您必须提供为应用程序/机器人通道注册配置的应用程序 ID 和密码。 我已经尝试过这样做。它给出了与 WebChat 相同的 403 错误。它工作的唯一方法是通过没有信用的模拟器。我读了一些文章,它说我需要离线运行才能正常工作。如果可行,我会尝试并回复您。 你能解决你的问题@NaserMohdBaig吗?很高兴知道(在那种情况下)我遇到了类似的事情。 @pgoldweic,我不记得它的配置步骤,因为它来自我以前的公司,但使用离线直接线确实帮助了我:github.com/ryanvolum/offline-directline 最好的起点是文档上面的包和一些试验和错误。希望我能帮助你更多。您为什么不试一试,如果遇到任何错误,请告诉我?如果我看到任何错误,也许它会回到我身边;)祝你好运以上是关于在将本地机器人连接到本地 WebChat 客户端时获取 403(尽管适用于模拟器)的主要内容,如果未能解决你的问题,请参考以下文章
通过 Jumpbox/Proxy 从我的本地机器连接到远程 MySQL