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


Mar 09, 2020

這篇文章主要是分享我在 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 #聊天機器人






你可能感興趣的文章

早起跑來跑去卻停滯進度的一天

早起跑來跑去卻停滯進度的一天

CS50 IP (Internet Protocol)

CS50 IP (Internet Protocol)

Java 隨手記

Java 隨手記






留言討論




Libcoder Mar 11, 2020

簡單易懂的教學,寫的非常好,謝謝您的分享,但是檔案名稱還是建議別用中文比較好

JohnnyFoxChang Mar 12, 2020

感謝您的建議



Sunnylovecoding Jun 01, 2020

謝謝您的分享,非常清楚的步步解析操作,非常受用!!



yuehchunglee Dec 07, 2022

黑手 寫的真的很清楚 讓不懂的人都能看得懂
謝謝





2
2
2