首頁 > 軟體

[Python+LINE Bot教學]6步驟快速上手LINE Bot機器人-下

2021-03-29 17:33:10

[Python+LINE Bot教學]6步驟快速上手LINE Bot機器人-上

四、開發LINE Bot應用程式

設定完成後,開啟Django應用程式(APP)的views.py檔案,這邊就是撰寫LINE Bot接收訊息後,所要執行的運算邏輯,這邊先以使用者傳送什麼訊息,就回覆什麼訊息為例,來測試Django應用程式(APP)能夠成功的和LINE頻道(Channel)進行連結,如下範例:

這邊幾個地方說明一下,第10、11行為取得settings.py中的LINE Bot憑證來進行Messaging API的驗證。

而在callback檢視函式中,當偵測到使用者有傳入的事件,就會透過Python迴圈進行讀取(第28行),如果其中有訊息事件(第29行),則回覆使用者所傳入的文字(第30~33行)。

接下來就要設定這個LINE Bot應用程式(APP)的連結網址,所以在Django應用程式(APP)下建立一個urls.py檔案,加入以下的網址設定:

而為了要將這個Django應用程式(APP)的網址也加入到專案主程式中,所以,在Django專案主程式下的urls.py檔案中,加入以下的網址設定:

五、安裝Ngrok

LINE Bot應用程式(APP)都完備後,接下來就要讓網址能夠公開(Public)且具有HTTPS ,LINE頻道(Channel)才有辦法連結。

這時候除了可以將LINE Bot應用程式(APP)部署到像Heroku雲端平臺,擁有對外公開的HTTPS網址外,還可以使用一個非常強大的工具-Ngrok 。

Ngrok簡單來說,就是能夠將你本機的IP埠號(http://127.0.0.1:8000),對應到一個隨機產生的HTTPS網址,並且這個HTTPS網址是對外公開的(Public)的,這時候外部使用者只要透過這個HTTPS網址,就能夠存取本機所運行的服務,是不是非常的強大阿。

首先,前往Ngrok官網,如下圖:

點選「Get started for free」後,會需要註冊一個帳戶,接著就會看到如下圖的畫面:

依據作業系統進行下載即可,而這邊要特別注意的是,在下方會有專屬於你的憑證(Token),如下圖:

將下載的檔案解壓縮,並且執行後,需要輸入以下的指令進行驗證:

$ ngrok authtoken <YOUR TOKEN>< YOUR TOKEN >

接著,就可以透過Ngrok,將本機的埠號對外公開,以本文為例,Django在本機運行的埠號為8000,所以輸入以下的指令:

$ ngrok http 80008000

執行結果

Ngrok就會隨機產生一個HTTPS的網址,只要把這個網址填入LINE Webhook URL,以及LINE Bot應用程式(APP) settings.py檔案中的ALLOWED_HOSTS,如下範例,LINE頻道(Channel)就能夠與LINE Bot應用程式(APP)互相連結:

接著,利用以下的指令執行LINE Bot應用程式(APP) :

$ python manage.py runserver. py runserver

六、設定LINE Webhook URL

在一般的網路世界中,使用者端(Client)會發送請求(Request)給伺服器端(Server),處理完商業邏輯後,就會回傳結果(Response)給使用者端(Client),如下圖:

而Webhook機制就是除了擁有上面一般請求(Request)的流程外,還能夠主動推播訊息給使用者端(Client),即便使用者端(Client)沒有向伺服器端(Server)傳送請求(Request),所以Webhook機制讓使用者端(Client)與伺服器端(Server)成了雙向的溝通,如下圖:

LINE Webhook URL位於LINE Developers開發者控制檯的Messaging API頁籤中,如下圖:

點選「Edit」,輸入剛剛Ngrok所產生的HTTPS網址,如下圖:

範例中,在Ngrok的網址後面,記得要加上LINE Bot應用程式(APP)的網址,這樣LINE頻道(Channel)才有辦法請求(Request)。除此之外,下方的「Use webhook」要啟用。

這邊點選「Verify」進行驗證,如果發生錯誤,而LINE Bot應用程式(APP)的終端機(Terminal)中卻沒有出現問題的話,則無需擔心,還是可以繼續往下實作。

由於本文所開發的LINE Bot應用程式(APP)會自動回覆訊息,而無需LINE官方回覆,所以在下方的「Auto-reply messages」,點選「Edit」,如下圖:

設定自動迴應訊息為「停用」,如下圖:

最後,掃描Messaging API頁籤中的QR code,加入好友後就可以對LINE Bot傳送訊息,執行結果如下圖:

七、小結

本文為基本的LINE Bot實作過程,在下一篇文章中,將會加入Python網頁爬蟲,依據使用者所傳入的需求,爬取知名美食網站的資料,回覆給使用者。希望本文的教學有幫助到您,歡迎分享給身邊在學習LINE Bot的朋友。如果您喜歡我的文章,請你關注我!

#python實戰#


IT145.com E-mail:sddin#qq.com