【Chatbot】(全圖文說明) ngrok 本地伺服器設定方法 - LINE bot local server

前言

這篇是專門寫利用 ngrok 架設本地伺服器的設定方法 (LINE bot local server),
如果想要設定的是雲端伺服器,可以參考另外一篇 heroku 雲端伺服器服務的設定教學。
本地伺服器的好處就是方便 debug,缺點大概就是電腦要一直開著! (要開著才能提供服務啊!)
但雲端伺服器 debug 就比較麻煩一些 (還需要經過上傳),不過好處也就是電腦就不用一直開著囉XD!

  • line webhook URL 修改傳送門」:https://developers.line.biz/console/ 因為使用這個方法實在太常用到了,這邊也放一個,只要更新、重開 ngrok 都會用到。
  • ngrok 說明

    ngrok 是一種將本地伺服器「映射到網際網路」上的方法(工具),
    你可以想像成我們本地的電腦本身就可以當一個伺服器,
    例如:「http://127.0.0.1:5000」、「http://localhost:5000」,
    但因為只有在「自己的電腦上看得到」,所以我們才需要一個工具,
    將這個只有在「自己的電腦上看得到」的伺服器,映射到網際網路上。

    這樣就可以方便我們快速開發囉! (因為實際上我們都是在「本地端操作」)

    你可能會想問那 ngrok 的缺點是?

    其實也很簡單,我們都說了我們的伺服器是只有在「自己的電腦上看得到」,
    所以,「電腦只要關機了」就沒有服務了
    另外,免費版的 ngrok 只有「8 小時」,超過時間其實重連就可以繼續用…
    但「映射網址」會被換掉,這點要注意,表示我們要去更換「line webhook URL」。

  • line webhook URL 修改傳送門」:https://developers.line.biz/console/ 因為使用這個方法實在太常用到了,這邊也放一個,只要更新、重開 ngrok 都會用到。
  • step 1. 先去 ngrok 官方網站下載 ngrok 主程式

  • ngrok 下載連結:https://ngrok.com/ 進去後點「Get started for free」
  • - 請選擇你的作業系統:

    step 2. 請「務必」記下下面內容與金鑰

    • 接下來,我們會用到下面第一行啟用 ngrok 的金鑰
    • 而第二行是在本地啟動 ngrok 的指令,後面的 port 可以自行修改 (必須對應到你的程式碼)

    step 3. 啟動 ngrok 方法

    打開你的終端機,將 step 2 那兩行複製貼上

    注意:你必須先移動到你的 ngrok 所在路徑,
    另外 ngork 請解壓縮出來… (我之前就傻傻以為下載不用解壓縮XD)

    ./ngrok authtoken <你的金鑰>
    ./ngrok http 8080
    

    如果 Windows 碰到上面指令不能用,請試著前面去掉「./」應該就可以了!
    (親身經驗,另外還有路徑要對)

    step 4. ngrok 畫面 (此處以 Windows 示範,其他作業系統大同小異)

    • 我們「反白的地方」就是我們的映射網址,請「務必複製下來」 (複製第二行 https 開頭那個)

    題外話:terminal 複製小技巧

    • Linux terminal 複製:「command + shift + C」
    • Mac terminal 複製:「command + C」
  • Windows terminal 複製可以用下圖的方式,如下圖 先「選取複製範圍」->「點上方視窗右鍵」-> 「編輯」-> 「複製」
  • step 5. 使用 step 4 複製的 ngrok 映射網址,修改 line webhook url 路徑

    拿我們剛剛在 step 4 複製的 ngrok 映射網址,去修改 line webhook URL 路徑,
    並在之後加入「/callback」,如下圖。

    • line webhook URL 修改傳送門,之後更新都會用到:https://developers.line.biz/console/

    ★重要:因為免費版的 ngrok 最大只能連線 8hr
    重新連接的時候,http 映射位置會更新,記得去更新我們的 webhook

    step 6. 驗證 ngrok 服務是否串接成功,按下 「Verify」

    這邊我們按下「Verify」來驗證我們是否串接成功,記得下面的「Use Webhook」要打開。

    這邊如果有跳以下 Error 先沒關係,主要是因為我們只有「啟動 ngrok」而「未啟動程式服務」

    step 7. 按下 「Verify」之後,回到 ngrok 畫面

    回去看我們的 ngrok 視窗,如果有出現新的 Post /callback 就成功了! (出現 502 Bad Gateway 也沒關係)

    出現 502 Bad Gateway 是因為還沒有打開 localhost 的伺服器,也就是還「未啟動程式服務」。

    到這邊我們就這設定完 ngrok 的本地伺服器囉 (LINE bot local server)

    接下來,有了「伺服器」跟「機器人服務前端」,
    我們就要來完成最重要的「機器人後端的服務」了! (可以想像成「機器人運作的邏輯」)

    Reference

    https://www.learncodewithmike.com/2020/06/python-line-bot.html

    Licensed under CC BY-NC-SA 4.0