iT邦幫忙

1

用 Python 暢玩 Line bot - 03:ngrok

  • 分享至 

  • xImage
  •  

若是要讓 line bot 能夠運行,會需要輸入個 webhook 網址來接收資訊,而像是我們在剛學習,沒有一個固定 IP 可以使用。或是還在測試各項功能,需要做不斷地更改,想要即時的看到修正過後的結果,那我們可以考慮使用 ngrok ,來讓我們獲得一組網址使用。

ngrok 是一個 reverse proxy 的工具,透過將 local 的 port 對應到一個 public 的地址,讓外部可以透過該 public 地址連到 local 端,繼而取得或傳送資料。
ngrok 本身最大的優點是免費版就可以提供一個動態的地址,而他的缺點就是速度相對會比較慢,若是同時多人在連上該地址,很大機率會導致網站卡死,(此為做報告的時候的真實體驗)

ngrok 下載地址
ngrok 官網
免費版與付費版的功能差異

  1. 依照自己電腦的系統去下載對應的檔案,下載完後會得到一個壓縮檔,解壓縮完可以取得 ngrok 的執行檔,將執行檔放在方便使用的地方即可。
  2. 到 ngrok 註冊一個免費帳號
  3. 註冊完畢後會跳轉至 dsahboard,可以找到 token 去設定
  4. 使用的方式是先打開 cmd,cd到該執行檔所在的位置,輸入ngrok http port number 就可以取得可以連線到 local server localhost:port number 的一組的網址

圖一、ngrok 運行畫面

將 ngrok 安裝完畢,確認可以正常使用後,我們就可以回到 Line developer,進入 channel之中,在 Message API 中找到 Webhook URL,點選 edit 即可將從 ngrok 取得的網址填入,要注意的是,在網址之後要加上/callback,對應前篇中的@app.route("/callback", methods=['POST'])

圖二、 Webhook URL


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
zhijiun
iT邦新手 4 級 ‧ 2022-05-04 11:26:16

我打出 ngrok http 8888 結果回傳 -bash: ngrok: command not found
請問怎麼解決?
我有時候可以連到,但很常不能連到

Arashi iT邦新手 5 級 ‧ 2022-05-04 21:36:39 檢舉

可能是你在執行ngrok http 8888指令的時候,並不在ngrok.exe在的目錄喔
ngrok相關的指令都要在跟ngrok.exe同層目錄的時候才能使用,所以把exe放在好找的地方

zhijiun iT邦新手 4 級 ‧ 2022-05-05 14:01:32 檢舉

您好,謝謝回覆,我在輸入./ngrok http 8888時,./與ngrok中間不小心空了一格,導致無法進人,目前已解決,非常謝謝您!

我要留言

立即登入留言