利用ngrok 直接在本機開發chatbot | ngrok line bot golang
利用ngrok拿到一個免費的httpsproxy,將這個網址綁到chatbot的webhook網址,便可以很輕鬆得在本機開發chatbot。前言去年第4季部份時間,加上今年上半年大部份時間,幾乎都在做chatbot相關的開發。剛開始的時候真的是感到相關開發的工具是很不齊全(當然經過了一年多的發展,現在有更多更方便開發chatbot的工具了。),尤其是臺灣最多人用的Facebook和Line真的是對開發者挺不友善的。主要都是API的限制比較多,但Line至少還有個官方的SDK,FacebookMessengerBot則連個官方的SDK都沒有,基本上都是第三方的,絕大多數都是開發者自己包的...
利用 ngrok 拿到一個免費的 https proxy,將這個網址綁到 chatbot 的 webhook 網址,便可以很輕鬆得在本機開發 chatbot。
前言去年第 4 季部份時間,加上今年上半年大部份時間,幾乎都在做 chatbot 相關的開發。剛開始的時候真的是感到相關開發的工具是很不齊全(當然經過了一年多的發展,現在有更多更方便開發 chatbot 的工具了。),尤其是臺灣最多人用的 Facebook 和 Line 真的是對開發者挺不友善的。主要都是 API 的限制比較多,但 Line 至少還有個官方的 SDK,Facebook Messenger Bot 則連個官方的 SDK 都沒有,基本上都是第三方的,絕大多數都是開發者自己包的。
好像有點離題了,總之,一開始開發 Facebook Messenger Bot 的時候,都是在 Webhook 網址填入 Google App Engine service 給的預設網址,每次有改動就要 deploy 上去 GAE,等新版本的 service 正常運作之後,還要再等 Facebook 一段時間才會真的切換到新版本,時間不太一定。一開始還可以接受,但後來就覺得這樣實在是太麻煩了,所以就開始尋找有沒有比較方便的解法。
一開始是往「有沒有辦法在本機架一個模擬 Messenger Bot 介面的網頁前端出來」去找,還真的有人寫:https://github.com/spchuang/fb-local-chat-bot[1],但因為是獨立開發,而且 Messenger Bot 的介面或 API 其實很常改動,所以我後來沒有採用這個方法。
後來詢問了一些人後,才往 web proxy 的方向找,有人推薦我使用免費的 ngrok[2]:可以拿到一個支援 https 的 web proxy,在 Facebook Messenger Bot 使用的 Webhook 網址填入 ngrok 的 https 網址,之後 Facebook 送到該網址的 request 都會由 ngrok 轉送到本機的某一個 port 上,只要你有在 localhost 把 Messenger Bot 的 Webhook server 執行起來的話,就可以很方便得用自己的手...