什么可能会阻止EC2托pipe的机器人在Microsoft Bot Framework上回复消息?

我有一个托pipe在AWS EC2上的Node.JS机器人,在Chrome / Firefox / Safari中有一个有效的Comodo SSL证书,并且在我的端点的bot框架上configuration了一个机器人。

当我在https://dev.botframework.com启动僵尸框架控制台时,我可以点击“testing”button,它会显示“已接受”。 我也可以在embedded式networking聊天中发送消息,并且在AWS上login我的僵尸工具时显示正在接收的消息,并且通过调用session.send()发回消息…但是从未出现返回消息回到networking聊天。 在服务器端或bot框架错误查看器中没有logging任何错误,该消息似乎是悄无声息地丢弃。 我添加了一个Skype频道,并在Skype中获得完全相同的行为。

当我将相同的代码部署到Azure Web App时,它在所有方向都可以正常工作。

我完全卡住了…我无法弄清楚什么可以阻止返回消息回来,我看不到什么步骤接下来进行故障排除。 从文档中我们不清楚如何将消息发送回框架,是否有一个特定的主机/ IP /端口,我应该从EC2中进行探测,看看是否有什么事情是阻碍的? 我的AWS安全组中没有出站规则会阻止连接,例如“telnet directline.botframework.com 80”成功。

       

网上收集的解决方案 "什么可能会阻止EC2托pipe的机器人在Microsoft Bot Framework上回复消息?"

所以事实certificate,问题是,在转移到EC2我没有设置应用程序ID和密码僵尸框架(我提供他们作为环境variables)。 向ChatConnector构造函数的map的“appId”和“appPassword”参数提供一个未定义的值是一个有效的input:它看起来像连接器一样,没有设置值,连接器进入testing模式,模拟器。

出于某种原因,bot框架控制台(在https://dev.botframework.com/bots )在bot没有进行身份validation的情况下将消息发送回框架时不会报告错误,由于某些原因,“testing连接到你的机器人“显示”接受“没有身份validation。 我尝试了一个无效的appId和appPassword,它报告“Forbidden”。 如果连接到运行时没有appId和appPassword的机器人也这样做,这将有助于解决问题。