Line聊天機器人---本機電腦的練習


Line聊天機器人---本機電腦的練習

這篇文章主要是分享我在 CoderBridge 線上學習課程中的練習過程

LINE Bot的五大基本流程(摘錄課程綱要)

  1. 申請 LINE Bot 開發者帳號並建立 LINE Bot Provider / Channel 等相關設定
  2. 環境設定和安裝 Flask、Requests、Python LINE Messaging API SDK 等套件
  3. 建立 Python Flask Web Server 並撰寫 Webhook Server 商業邏輯
  4. 使用 ngrok 建立 https 入口,讓外界可以使用我們的 Flask Web Server
  5. 在 LINE Bot 管理後台設定 Webhook URL 網址後於 LINE App 上測試使用(可使用 QR Code 加入好友)

容易卡關的地方

1. Flask的本機測試方法

為了讓操作環境單純, 我採用 Anaconda Prompt(Anaconda3)的命令指令列來執行

此時會出現終端機視窗(指令列)

最前面會出現(base) 表示是在 Anaconda Prompt的環境下
因為我的工作目錄位於 D磁碟, 所以我用 D: 指令 和 CD 指令切換到我的Python工作目錄

然後在指令列安裝 flask

pip install flask 的指令在本機只要執行一次即可, 套件會存在電腦中
此時來撰寫 測試程式 (我用的是 Notepad++)

存檔時, 記得要選 Python的格式, 檔名也要記得加 .py

存檔完後, Notepad++ 自動會用 Python的格式來顯示整個程式

此時要如執行 寫好的 .py 程式呢???
在命令列執行 python flask測試.py 即可

如果無誤時, 會出現以下的 flask伺服器的待命狀態

* Serving Flask app "flask測試" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)

此時要如何知道我們寫的程式有成功, 在瀏覽器打上 localhost:8080 即可出現 Hello, World! 表示程式執行正確了

同時也可以看到 指令列的 flask待命區出現執行狀況

如果要離開 flask待命區的狀態, 只要在指令列的視窗 同時按 Ctrl C 兩個按鍵, 即可離開

2. ngrok的執行

因為我們是用個人電腦來當做伺服主機使用, 而在 Line Bot要連結時, 需要有網址來對應連結, 此時我們就要在本機(電腦)中執行 ngrok 來做網址的對應(轉址, 有點像電話自動轉接的功能)

ngrok下載至電腦為一個執行檔 ngrok.exe , 因為執行 ngrokflask 都會讓指令列(端終機)處於待命狀態, 所以我們要開啟二個 Anaconda Prompt視窗, 才能分別執行這個功能

此時我們選擇其中一個指令列視窗來執行 ngrok http 8080

此時會出現 一個對應網址, 將這個網址抄寫到 Line的開發後台 Messagint API中的 Webhook URL中 https://da0ab438.ngrok.io/callback 這裡是我的對應, 要抄寫你自己電腦中的對應喔!!!

同時自動回應的功能也要關掉比較好

記得程式中的 @app.route("/callback", methods=['POST']) 那一段不用修改

3. Python Line SDK 和 flask的安裝及執行

此時我們在另一個指令列視窗安裝 Python Line SDK, flask...等套件

這些套件只要執行安裝一次即可!!!

4.執行聊天機器人的Python程式

我們在剛剛那個視窗執行我們寫好的聊天機器人的Python程式, 同樣我用 Notepad++ 來編寫Python程式
同樣的在指令列輸入 python 回聲機器人.py (這是我的程式名稱, 你要輸入你自己的程式名稱)

此時兩個視窗都進入待命狀態, 等待我們用Line和聊天機器人對話....

上面的Line對話為何第一次的晚安, 沒有自動出現回聲呢? 因為我忘了設定 Webhook URL

你會發現當你在和 Line聊天機器人對話時, 兩個待命視窗都會出現處理的情況

5. 聊天機器人程式修正或更改時,如何處理?

當我們要修改聊天機器人的Python程式, 或更改要執行的程式時, 只要將執行 flask 那一個視窗, 同時按 Ctrl C 離開即可, 另外一個 ngrok 視窗保持待命即可

以下為改為 輸入指令的聊天機器人程式的範例 (若是程式有問題時, 一樣是先離開 flask待命狀態, 修改好程式存檔完, 再執行相同的檔名程式即可)

因為我有輸入指令, 所以 ngrok 的待命狀態, 多出現了一個執行狀況
而 flask 只有一列的執行狀況 (因為是另一個程式了)


以上是我測試的分享筆記, 歡迎大家一起討論!!!

#Python #LINE Bot #聊天機器人






留言討論