我正开始使用Messenger平台API,想制作一个简单的Messenger聊天机器人。 这里是我要遵循的教程。
如您所见,为了开始操作,我需要设置Webhook(第二步)。因此,基本上是:提供一些REST API并返回数据的Web服务器。问题是:Facebook要求我提供一些真实的、存在的应用程序URL,该URL当前在互联网上能够运行。那么,我需要每次更改代码时都将其上传到服务器吗?我可以在本地(即我的localhost)进行测试吗?我该如何测试我的机器人的行为?
有几种服务可以用来将运行在本地主机上的web服务器公开到互联网上。其中两个选项是localtunnel和ngrok。
以下是一个示例(来自localtunnel的快速入门),假设您的web服务器运行在http://localhost:8000/,您可以这样做:
从npm安装localtunnel:
npm install -g localtunnel
请求连接到您的本地服务器:
lt --port 8000
这将生成一个链接,形式为https://foo.localtunnel.me
,您可以使用该链接从网络访问本地主机。一个很好的功能是您会自动获得https,因此Facebook不会给您“SSL证书问题”错误。如果要与他人共享在本地运行的工作,则Localtunnel或ngrok也很好用。
请注意,localtunnel网址仅在连接存在期间有效,因此如果连接结束,您将需要更新Facebook的网址。
fb-local-chat-bot
,您可以轻松地离线测试您的机器人。该库还使测试变得更加简单。如果您感兴趣,请务必查看它。
https://github.com/spchuang/fb-local-chat-bot
演示:
https://github.com/SonOfSardaar/facebook-send-api-emulator
我也遇到了这个问题(我还没有尝试过这个,但看起来不错)
https://learn.microsoft.com/en-us/bot-framework/debug-bots-emulator