若是要让 line bot 能够运行,会需要输入个 webhook 网址来接收资讯,而像是我们在刚学习,没有一个固定 IP 可以使用。或是还在测试各项功能,需要做不断地更改,想要即时的看到修正过后的结果,那我们可以考虑使用 ngrok ,来让我们获得一组网址使用。
ngrok 是一个 reverse proxy 的工具,透过将 local 的 port 对应到一个 public 的地址,让外部可以透过该 public 地址连到 local 端,继而取得或传送资料。
ngrok 本身最大的优点是免费版就可以提供一个动态的地址,而他的缺点就是速度相对会比较慢,若是同时多人在连上该地址,很大机率会导致网站卡死,(此为做报告的时候的真实体验)
依照自己电脑的系统去下载对应的档案,下载完后会得到一个压缩档,解压缩完可以取得 ngrok 的执行档,将执行档放在方便使用的地方即可。到 ngrok 注册一个免费帐号。注册完毕后会跳转至 dsahboard,可以找到 token 去设定使用的方式是先打开 cmd,cd到该执行档所在的位置,输入ngrok 下载地址:
ngrok 官网
免费版与付费版的功能差异
ngrok http port number
就可以取得可以连线到 local server localhost:port number 的一组的网址图一、ngrok 运行画面
将 ngrok 安装完毕,确认可以正常使用后,我们就可以回到 Line developer,进入 channel之中,在 Message API 中找到 Webhook URL,点选 edit 即可将从 ngrok 取得的网址填入,要注意的是,在网址之后要加上/callback
,对应前篇中的@app.route("/callback", methods=['POST'])
图二、 Webhook URL