在本機測試LineBot API

在本機測試和LINE的API串接時,有幾種方法可以幫助你模擬和測試,而不需要將程式部署到有HTTPS的網址。

使用Ngrok

Ngrok是一個免費的命令行工具,可以將你本機運行的服務暴露到互聯網上。這樣,你可以在本機測試你的API,同時讓外部服務(如LINE的Webhook)能夠訪問你的本機服務。ngrok的原理就是可以把外界的請求轉發到你本機指定的 Port,也就是由 ngrok 產生一串公開的網址來讓外網存取你本機上的Port。它的優點是快速而且還提供了https的服務讓你使用上更安全,甚至還可以設置密碼保護。

這個服務在開發Line Bot時非常好用,我們在本機開發webhook的後端程式,當然不想要每次都一定得部屬到伺服器上面才可以測試,使用Ngrok可以擁有一個公開的網址,可以讓其他人直接連上該網址上的內容。

安裝Ngrok

可從下面網址下載,下載頁面可選擇平台以及安裝方式
https://ngrok.com/download

接著將ngrok.exe放置在你想要放置的硬碟位置即可

直接使用下面的指令會出現錯誤訊息 “authentication failed: Usage of ngrok requires a verified account and authtoken.”

ngrok http 8080

查了一下,這是使用 ngrok 時遇到了身份驗證的問題,具體錯誤是 ERR_NGROK_4018, ngrok 需要使用一個已經驗證過的帳戶和 authtoken

這裡有幾個解決步驟:

  1. 註冊 ngrok 帳號
    如果你還沒有 ngrok 帳戶,請先前往 ngrok 註冊頁面 進行註冊。註冊完後,確認你的帳號是已驗證的。
  2. 取得 authtoken
    登入 ngrok 後,前往 ngrok 的 authtoken 頁面,你會看到你的 authtoken。這是一串用來驗證你 ngrok 帳號的密鑰。
  3. 安裝 authtoken
    在你的命令行或終端中執行以下指令來安裝你的 authtoken:ngrok config add-authtoken YOUR_AUTHTOKEN 請將 YOUR_AUTHTOKEN 替換為你從 ngrok 控制台中取得的 authtoken。
  4. 重新啟動 ngrok
    完成上述步驟後,再次嘗試啟動 ngrok 隧道,應該就能正常運作。
ngrok config add-authtoken YOUR_AUTHTOKEN

以下為正常運作的畫面,獲得的公開網址為”https://ab7c-61-219-171-252.ngrok-free.app

接著到Line Console創建一個LineBot串接到這個公開位置就可以啦!接著就可以在本機測試你的本地端程式了

更多詳細教學請參考: https://medium.com/%E4%BC%81%E9%B5%9D%E4%B9%9F%E6%87%82%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88/%E5%BF%AB%E9%80%9F%E8%AE%93%E5%A4%96%E7%B6%B2%E9%80%A3%E6%8E%A5%E6%9C%AC%E6%A9%9F%E7%9A%84%E5%88%A9%E5%99%A8-ngrok-ac92f792e1f0


17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。