在本機測試和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
這裡有幾個解決步驟:
- 註冊 ngrok 帳號
如果你還沒有 ngrok 帳戶,請先前往 ngrok 註冊頁面 進行註冊。註冊完後,確認你的帳號是已驗證的。 - 取得 authtoken
登入 ngrok 後,前往 ngrok 的 authtoken 頁面,你會看到你的 authtoken。這是一串用來驗證你 ngrok 帳號的密鑰。 - 安裝 authtoken
在你的命令行或終端中執行以下指令來安裝你的 authtoken:ngrok config add-authtoken YOUR_AUTHTOKENYOUR_AUTHTOKEN
替換為你從 ngrok 控制台中取得的 authtoken。 - 重新啟動 ngrok
完成上述步驟後,再次嘗試啟動 ngrok 隧道,應該就能正常運作。
ngrok config add-authtoken YOUR_AUTHTOKEN
以下為正常運作的畫面,獲得的公開網址為”https://ab7c-61-219-171-252.ngrok-free.app“
接著到Line Console創建一個LineBot串接到這個公開位置就可以啦!接著就可以在本機測試你的本地端程式了