【发布时间】:2017-10-20 19:20:30
【问题描述】:
我一直在修改nodejs 机器人框架。我成功地创建了一个发送主动消息的机器人,但碰巧它只适用于emulator。
它可以在我的本地服务器上运行,也可以在https://chatobot.ngrok.io/api/messages 的远程服务器上运行
到目前为止一切顺利。
但是,在https://dev.botframework.com 完成注册过程并“成功”发布到 Skype 频道和电报频道后,什么也没有发生。机器人不会回复,我的服务器端点也没有任何反应。
我使用了您在 botframework 网站上找到的 Test 功能。它发送的是我的消息,但似乎永远无法到达我的服务器。另外,据我所知,它没有给我任何错误。
但是,当我使用 Emulator 连接到远程服务器时,一切正常...!
我做了什么:
- 确保我的
MS_APP_ID和MS_APP_PWD已正确设置为环境变量。 - 首先使用
nginx(带有自签名证书)为我的api和HTTPS提供服务,然后使用ngrok(只是为了确保我自己的证书没有问题)。 - 尝试添加更多频道(Slack 等),以确保这不是 Skype 或网络聊天特有的问题。
- 在 SO 上寻找类似的问题。有很多,但通常这些人能够通过更新他们的 APP_ID 和 APP_PWD(我也尝试过)甚至以错误的形式获得某种反馈来解决他们的问题......不幸的是,这不是我的案例:|
PS:不要介意我的 MS Paint 技能。
PS2:这是我的代码https://github.com/assimoes/chatobot
【问题讨论】:
-
您的机器人托管在哪里?如果不在 Azure 上,您的远程服务器是否有有效证书?
-
@JasonSowers,感谢您的提问。我的服务器托管在Linode,但出于这个原因,我用 ngrok 打开了一个 http 隧道。所以我使用 ngrok 的
https隧道为我的消息传递端点提供服务。
标签: node.js botframework