用 Python 建構你的 LINE BOT 聊天機器人 — 部署篇
Hey 大家好,經過上一篇的基本設定介紹相信大家都迫不及待想要來玩 LINE BOT 了,用 Python 來實作是非常快速以及簡易的, 可以透過任何 Python 套件來達成你的目的。這一篇主要是部署的實作,從透過 ngrok 進行本地端測試到部署至 Heroku 實際運行環境,準備好的朋友就開始吧~
主要流程:
- 撰寫、修改 Python code
- 透過 ngrok 來測試
- 部署至 Heroku
撰寫、修改 Python code
Step 1. 安裝套件
先把我的 code clone 下來,我們會用到的套件有:
- line-bot-sdk
- flask
# 安裝套件
cd just-echo
pip install -r requirements.txt
Step 2. 修改程式
還記得上一篇提到的 Channel secret、Channel access token 嗎?這邊會需要把你的 secret 以及 access token 替換到程式上(app.py)。這邊為求方便所以是直接把它們寫在程式裡,但通常不是很建議這樣做會有資安上的疑慮,建議用環境變數的方式會比較好,修改完後就可以來測試啦!
# you can replace by load env file
handler = WebhookHandler('Your_Channel_Secret')
line_bot_api = LineBotApi('Your_Channel_Access_Token')
透過 ngrok 來測試
ngrok 是一個暫時提供你網路穿牆的免費工具,他會把你的 local 端暫時接到公網上讓他人可以連接到你,且提供 https 協定
Step 1. 啟動 ngrok
到命令列輸入指令後他會把你的 local 端指定 port 暫時接到公網上
ngrok http 3000

沒問題的話就會看到上方畫面,其中的 https://0cc578799d0d.ngrok.io 就是我們待會要用到的,這一步驟用好後請先不要關閉,不然 session 就斷了!
Step 2. 修改 Webhook
回到 LINE Developers 的 channel setting,把 Webhook URL 替換成剛才 ngrok 產生的連結,後方別忘了加上 /callback ,這是程式裡面定義好的路由

記得要開啟 webhook (enable 狀態)
Step 3. 修改程式偵聽 port 號
因為我們需要先在本地端測試,測試完成後才部署到 Heroku 上,因此我們需要把程式原本指定的 port 號 (環境變數) 改成我們剛才用 ngrok 穿牆的 port 號,修改處位於 app.py 最下方
# 原本
app.run(host='0.0.0.0', port=os.environ['PORT'])# 修改後 (for test)
app.run(host='0.0.0.0', port=3000)
Step 4. 啟動程式
cd just-echo
python app.py
Step 5. 測試 echo BOT
如果沒問題的話就會看到 BOT 把你的訊息原封不動地傳回給你了,接著我們就可以將程式部署到 Heroku 上了

部署至 Heroku
Step 1. 修改程式偵聽 port 號
這邊需要把剛才修改的 port 改回來,改成由 Heroku 實際運行的 port 號 (用環境變數的方式去抓)
# 原本
app.run(host='0.0.0.0', port=3000)# 修改後 (for test)
app.run(host='0.0.0.0', port=os.environ['PORT'])
Step 2. 指定 Heroku 專案
連結你的 Heroku 專案,後方名稱是上一篇在 Heroku 步驟所取的專案名稱
# login
heroku login# 連結專案
heroku git:remote my-line-bot-666
Step 3. 修改 Webhook
記得把 Webhook URL 改成 Heroku app domain,你的 Heroku app 連結會在Heroku 專案 > Settings 裡面

Step 4. 準備 push 上去
輸入以下指令即可部署到 Heroku
# 把目錄底下所有檔案都加到暫存區
git add .# 製作一個 commit ,後面是這個 commit 的描述
git commit -m "init"# 推到 heroku
git push heroku master

到這邊都順利的話先恭喜你部署完成 ~
參考資料

如果覺得這篇文章有幫助到你可以給我 拍手 當作鼓勵唷,也歡迎您點擊上方 讚賞鍵 不需要花費就可以給創作者鼓勵 (最多點擊 5 下) ,也歡迎 Follow 我,下次見