Suggested by | Description | HackMD Profile |
---|---|---|
Willis Chen | 採用貢獻者的 PyHackMD 來用 Python 接 API,修改編輯權限與刪除文件文件 | @wiimax |
https://[APP Name].fly.io/callback
填入您LINE Channel 的 Webhook。LINE Chat BOT
程式碼標示@靈感
為開頭的文字,將作為一個獨立的靈感筆記。
標示@TODO
為開頭的文字,將寫入一個連續的的代辦清單。
無上述標示的文字,將寫入一個連續附加的在暫存筆記。也就是從別的文章分享的超連結都直接灌到此暫存筆記。
如果要整理筆記,用電腦編輯整理即可。
在 LINE Developers 登入您的 LINE 帳號,建立 Provider 以及所屬 Channel, Channel 名稱就是您的 LINE bot 名稱,管理方式如同 LINE 官方帳號。
用程式控制的聊天機器人需要以下3個參數,請保管好勿外流。
在此範例程式中,需要將 Channel 查到的以下參數填入config.py
檔案。
在本機電腦安裝git,您可以先完成以下示範範例後,再將程式碼改成LINE Chat BOT程式碼即可。
進入專案資料夾
安裝該專案所需的外部套件
[選用] 如果要在本機進行開發測試,可以設置環境變數FLASK_APP
,目的是指定主程式的執行檔,對此專案而言主程式為hellofly.py
,經指定後flask run
指定就是跑主程式,而且要結合 Ngrok建立臨時通道,對您來說太複雜的話可以跳過,只是各種測試就必須等待部署後。
!! 如果用環境變數都跑不出來,退而求其次,在hellofly.py
最後加入:
啟動flask指令改為python hello.py
,請注意,這不是flask現在建議的啟用方式,本方法只適用於本機測試。
fly ctl
指令工具完成部署上述範例程式碼測試無誤後,接續安裝 fly ctl
指令工具。Fly.io 最方便部署服務的方式是使用終端機指令工具flyctl
,可以讓本機直接部署。
安裝flyctl
PowerShell
Mac
Linux
啟動一個 fly App 專案,執行 flyctl launch
選擇伺服器區域,台灣鄰近的區域有香港、東京可選。
修改程式,這邊在範例專案中特別提醒,Procfile
檔案為設定連線服務用,與您的主程式檔名務必相符,也就是原本為web: gunicorn server:app
記得改成web: gunicorn hellofly:app
,這原理跟部署在 Heroku 是一樣的。
檢查完程式後,一鍵佈署。
查看佈署,其中hostname
就是網址了,可以用flyctl status
確認狀態、用flyctl open
開啟 APP、用flyctl logs
確認有無 BUG。
如果需要設定 secrets
取消 secrets
列出 secrets list
LINE Chat BOT
程式碼可以對照您上述部署完成的python-hellofly-flask
程式碼進行修改,
config.py
app.py
requestments.txt
執行flyctl deploy
部署。請注意,*.toml
請用您自己的,該檔案是由 flyctl launch
產生,為了您的專案部屬所需的檔案,用範例檔會出錯唷。
也請記得補上 HackMD API token 與筆記ID相關資訊:
上述有問題的話就耐心看flyctl logs
,我常作的方式是開兩個終端機,一個執行操作、一個看 log 。
部署完成後,記得把您的 fly.io 專屬服務網址貼入 LINE Channel 的 Webhook ,網址應為 https://[APP Name].fly.io/callback
,特別是 */callback
記得填,並且設定開啟 Webhook。
恭喜您完成!