我从 Messenger Platform API 开始。我想做简单的 Messenger 聊天机器人。这是我遵循的教程。
如您所见,首先我需要设置 webhook(第 2 步)。所以基本上:提供一些 REST API 并返回一些数据的 Web 服务器。问题是:facebook 要求我提供一些当前在互联网上有效的真实、现有的应用程序 URL。那么,每次更改某些内容时是否需要将代码上传到服务器?我可以在本地(在我的本地主机上)以某种方式对其进行测试吗?如何测试我的机器人的行为?
我从 Messenger Platform API 开始。我想做简单的 Messenger 聊天机器人。这是我遵循的教程。
如您所见,首先我需要设置 webhook(第 2 步)。所以基本上:提供一些 REST API 并返回一些数据的 Web 服务器。问题是:facebook 要求我提供一些当前在互联网上有效的真实、现有的应用程序 URL。那么,每次更改某些内容时是否需要将代码上传到服务器?我可以在本地(在我的本地主机上)以某种方式对其进行测试吗?如何测试我的机器人的行为?
您可以使用一些服务将在 localhost 上运行的网络服务器公开给公众。两个选项是localtunnel和ngrok。
假设您的网络服务器在http://localhost:8000/上运行,您可以如何执行此操作的示例(来自 localtunnel 的快速入门)如下所示:
从 npm 安装 localtunnel:
npm install -g localtunnel
请求到本地服务器的隧道:
lt --port 8000
这将生成一个链接,https://foo.localtunnel.me
您可以使用该链接从 Web 访问您的本地主机。一个不错的功能是您会自动获取 https,因此 Facebook 不会给您“SSL 证书问题”错误。Localtunnel 或 ngrok 也很适合与他人共享在本地运行的工作。
请注意,localtunnel url 仅在连接存在时才有效,因此如果连接结束,您必须更新 Facebook 的 url。
我创建了一个试图解决这个确切问题的库!有了fb-local-chat-bot
您,您可以轻松地离线测试您的机器人。该库还使测试变得更加简单。如果你有兴趣,一定要看看
https://github.com/spchuang/fb-local-chat-bot
演示:
您可以使用 ngrok 在 localhost 中测试 messenger bot。您可以在以下网址下载它: https ://ngrok.com/download
在执行 ngrok 时,它将生成可用作 webhook 端点的安全链接。
也可以通过查看ngrok的每个请求和响应的详细状态
http://localhost:4040/inspect/http
稍后,完成后,您可以将代码部署到安全服务器。
您可以在以下链接中找到有关如何构建基本聊天机器人的更多信息:
您可以免费在 heroku 上部署后端服务。它提供带有 RSA 的公共 DNS。
如果由于某种原因(例如将 webhook 路由到多台开发机器)无法使用 ngrok。请尝试我为在本地开发/调试 webhook 而创建的这个模拟器。这提供了 send api 和 messenger ui 的仿真
我为发送 api 和信使创建了一个模拟器,用于在本地调试 web 挂钩
https://github.com/SonOfSardaar/facebook-send-api-emulator
我也遇到过这个(我还没有尝试过这个,但看起来不错)
https://docs.microsoft.com/en-us/bot-framework/debug-bots-emulator