问题 我可以在messenger webhook中使用localhost作为URL Callback


晚上好,刚刚看到Facebook发布了他的messenger bot工具包,我立刻跳进去了解更多相关内容,并尝试自己动手。

我的问题是我没有运行https网站,它需要一个https有效网址。我试图使用我的本地Web服务器,它有一个证书,但它不起作用。

我的问题是,是否可以使用localhost url完成此操作。

先谢谢你


3281
2018-04-12 20:34


起源

我尝试使用ngrok,如下面的链接所述,我让它工作。 sumwu.me/blog/page/9/how-to-create-a-facebook-messenger-bot - bvsdev


答案:


实际上这可以通过localhost实现。使用 ngrok。它允许您通过http或https打开localhost到公共Web。但这只应用于测试。


15
2018-04-13 20:24



如果多个开发人员在同一个webhook / chatbot上工作,ngrok将无法工作 - Gurpreet


如果您想在本地环境中测试webhooks,我会尝试使用ultrahook.com,您可以免费获得API密钥,该工具会创建从公共URL到您的计算机的隧道。这是来自他们的常见问题解答页面:

您在计算机上下载并运行UltraHook客户端。它   连接到云中的UltraHook服务器并从中创建隧道   我们服务器上的公共端点到您的计算机。任何HTTP POST   发送到公共端点的请求将通过隧道发送   传送到可从您的计算机访问的专用端点。

我用它来测试来自不同提供商(如支付网关)的webhook。在您的计算机中,您可以运行以下内容:

ultrahook <subdomain> http://localhost:8000/webhook/

然后将外部服务中的webhook URL配置为类似的内容 <subdomain>.ultrahook.com


1
2017-09-07 02:13





我的问题是,是否可以使用localhost url完成此操作。

不,当然不是 - 因为这样的“回调”实际意味着,Facebook是否向您的服务器发出请求 - 这几乎不可能 localhost


这些天,您可以通过LetsEncrypt免费获得有效的网站SSL证书。即使您的服务器上没有这个,仍然有StartSSL,它们免费提供基本证书。您只需要一台可以安装它们的服务器,或者将它们上传到服务器,或者您的主机为其提供的任何机制。 (如果他们没有提供任何,那么可能是时候切换了。)


0
2018-04-12 21:08



感谢您的回答,我问这个是因为有一些选项允许您在某些Facebook应用中使用localhost作为网址。但正如你所说,这是不可能的。感谢您的时间。 - Query
是的,你可以测试f.e. Facebook使用localhost登录 - 但这是因为所有内容都发生在您的浏览器中,它只是重定向到Facebook并从那里返回到您的本地主机。并且您的浏览器知道localhost是什么以及如何到达它,所以这里没有问题 - 但Facebook没有。 (或者你可以说他们当然也知道 - 但如果Facebook的服务器向127.0.0.1提出请求,那将无法实现。) - CBroe