使用ngrok url作为facebook webhook的回调网址,但被识别为“未列入白名单”

时间:2017-12-27 08:30:01

标签: python pycharm webhooks facebook-chatbot facebook-webhooks

我的IDE是Pycharm。 我想在本地测试我的应用程序,所以我在本地运行我的服务并使用ngrok将我的应用程序暴露给Internet。

ngrok显示的网址为https://436cb7e9.ngrok.io

但是当我想验证facebook webhook回调网址时,请使用上面的网址,显示

  

ERROR 2017-12-27 08:16:37,407 wsgi_server.py:329]请求主机436cb7e9.ngrok.io未列入白名单。已设置启用的主机(['localhost'])

我之前运行的应用程序很好,但我不知道为什么这次显示错误。 有人能给我建议吗?

2 个答案:

答案 0 :(得分:6)

经过一番挖掘并感谢Brady对gcloud版本的评论,我发现你需要解决的就是在运行应用程序时添加一个标记。

所以,假设你在本地运行你的应用程序:

python $APPENGINE/dev_appserver.py

只需将其更改为:

python $APPENGINE/dev_appserver.py --enable_host_checking=false

,您不应再出现主机白名单错误。

有关详情,请查看此处的发行说明:https://cloud.google.com/appengine/docs/standard/python/release-notes#december_5_2017

对于我来说,gcloud 183.0.0和187.0.0(编写本评论时的最新版本)似乎正常。

答案 1 :(得分:0)

通过ngrok信息中心的Auth标签完成。来自IP Whitelisting Tunnel Access

  

您可以将帐户中的隧道端点列入白名单。该   白名单由ngrok.com服务器强制执行。它适用于全球   到你的所有隧道端点。任何传入连接到任何   检查您的隧道端点以保证源IP   连接的地址匹配您的至少一个条目   白名单。如果连接与白名单不匹配   立即终止,从未转发给ngrok客户。

     

作为一种特殊情况,如果您的白名单为空,则所有连接都是   允许

     

管理白名单

     

您可以在auth tab of your ngrok上管理IP白名单   仪表板。在" IP白名单"下输入新的IP地址。部分和   然后单击添加白名单条目。 IP白名单的更改可以   需要30秒才能生效。

     

IP范围

     

有时,您可能希望将整个IP范围列入白名单。代替   只输入一个IP地址,您可以改为指定一个块   使用CIDR notation的IP地址。例如,允许所有IP   从10.1.2.0到10.1.2.255的地址,你要添加10.1.2.0/24   你的白名单。