在将本地机器人连接到本地 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-webchatcreateDirectLine 建立直连连接并传递一个令牌。我正在以这种格式访问此 API:
POST https://directline.botframework.com/v3/directline/tokens/generate
Authorization: Bearer SECRET

在此之后,控制台会抛出错误 403,并且不允许我继续进行。但是,我可以通过邮递员生成令牌,并且相同的 ngrok URL 非常适用于 bot 框架模拟器。

请帮助我理解我做错了什么。我花了一天的大部分时间研究如何完成这一步,非常感谢专家的意见。

谢谢。

【问题讨论】:

【参考方案1】:

与机器人框架模拟器配合得很好

当您使用模拟器进行测试时,您使用的是用户名/密码,还是空白?确保在本地运行时在 bot 中配置了 MicrosoftAppIDMicrosoftAppPassword,并且您正在使用 NGROK 通过渠道。

【讨论】:

我没有使用任何用户名或密码。它是空白的@dana-v 好的,当您通过 Azure 进行测试时(即使通过 ngrok 指向本地正在运行的机器人),您必须提供为应用程序/机器人通道注册配置的应用程序 ID 和密码。 我已经尝试过这样做。它给出了与 WebChat 相同的 403 错误。它工作的唯一方法是通过没有信用的模拟器。我读了一些文章,它说我需要离线运行才能正常工作。如果可行,我会尝试并回复您。 你能解决你的问题@NaserMohdBaig吗?很高兴知道(在那种情况下)我遇到了类似的事情。 @pgoldweic,我不记得它的配置步骤,因为它来自我以前的公司,但使用离线直接线确实帮助了我:github.com/ryanvolum/offline-directline 最好的起点是文档上面的包和一些试验和错误。希望我能帮助你更多。您为什么不试一试,如果遇到任何错误,请告诉我?如果我看到任何错误,也许它会回到我身边;)祝你好运

以上是关于在将本地机器人连接到本地 WebChat 客户端时获取 403(尽管适用于模拟器)的主要内容,如果未能解决你的问题,请参考以下文章

进行本地连接时不允许主机连接到此mysql服务器[关闭]

进行本地连接时不允许主机连接到此mysql服务器[关闭]

通过 Jumpbox/Proxy 从我的本地机器连接到远程 MySQL

将电话应用程序(phonegap)连接到本地主机文件(在本地机器中)

将本地数据库连接到 ASP.NET [关闭]

如何从本地机器连接到heroku pg?