測試webhook 不再煩惱:ngrok | ngrok教學
以前在開發Chatbot的時候,發現最困難的不是寫程式,而是測試。為什麼呢?因為Chatbot的原理就是接收到訊息時發送一個request到你指定的位置(webhook),你再callAPI然後回訊息。可是呢,這個webhookurl通常都會有兩個需求:必須要有一個domain(不能只有IP)要是https因此測試的流程就變成這樣:在local端先coding,用肉眼debug看似一切都沒問題上傳到server在聊天平台上測試,看有沒有收到訊息看server的logdebug發現問題,改code,回到步驟1真正的debug流程是發生在server上面,因為聊天平台只能接受真的domain,所以你也沒辦法在...
以前在開發 Chatbot 的時候,發現最困難的不是寫程式,而是測試。
為什麼呢?因為 Chatbot 的原理就是接收到訊息時發送一個 request 到你指定的位置(webhook),你再 call API 然後回訊息。
可是呢,這個 webhook url 通常都會有兩個需求:
必須要有一個 domain(不能只有 IP) 要是 https因此測試的流程就變成這樣:
在 local 端先 coding,用肉眼 debug 看似一切都沒問題 上傳到 server 在聊天平台上測試,看有沒有收到訊息 看 server 的 log debug 發現問題,改 code,回到步驟 1真正的 debug 流程是發生在 server 上面,因為聊天平台只能接受真的 domain,所以你也沒辦法在你的 localhost 測試。
現在的狀況應該好很多了,一開始 Chatbot 剛出來,大家都還在摸索然後官方文件又寫得不清不清楚的時候,來來往往就會花很多時間。你有可能會傳錯參數,或是搞錯 function。
正當我感到絕望的時候,有朋友跟我說了:你為什麼不用 ngrok 呢?
一句話介紹什麼是 ngrok:
一個可以把你 localhost 對應到 https public domain 的服務
例如說把你的 localhost:5000 對應到 https://fj2rijo3.ngrok.com。
這樣子做之後的好處就顯而易見了,你只要把 webhook 的 URL 填對應到的那個(完全符合那兩個條件),就可以在 localhost 上面測試了!
除此之外,使用上也超級無敵簡單。
你就去ngrok 官網[1]註冊帳號、下載一個程式,設定好 auth token 之後,就可以靠一個指令做到我剛剛講的事了。
./ngrok http 5000只要這行指令,就可以把你的 5000 port 對應到一個 ngrok 提供的 https domain。
除此之外,在 console 也會不斷印出 request 的訊息,讓你可以簡單看到有哪些...