一、建立Provider
要開發LINE Bot前,首先需建立一個Provider,也就是服務提供者,主要用來讓LINE官方能夠識別這個LINE Bot是誰提供的。
前往 LINE Developer 並註冊認證。
其中的三個圖示說明了開發流程,分別為「建立服務提供者(Provider)」、「建立頻道(Channel)」及「連結應用程式(APP)」。
第一步驟就是建立服務提供者(Provider),所以點擊「Create a new provider」,在按鈕下方就會出現輸入框,如下圖:
Provider name可以輸入自己想要的名稱,好記即可。
輸入 Provider name 之後就會來到第二步驟,建立頻道(Channel)的畫面。
二、建立Messaging API Channel
可以把頻道(Channel)想像是服務提供者(Provider)所建立的LINE帳號,藉此和使用者互動與傳遞訊息。
由於本文所建立的LINE Bot主要以傳訊息為主,所以選擇「Create a Messaging API channel」
接著會進入一個填寫相關資料的頁面,就提供圖片、描述、名稱等等,大部分都還可以修改所以先大概填寫就行。
建立完成就會如下(以我自己的JARVIS為例):
三、連接應用程式
最後的步驟就是要將這個頻道(Channel)與自己開發的應用程式連結,所以其中有兩個憑證會使用到。
Channel secret(頻道密碼)
在 basic settings 底下
Channel access token(頻道憑證)
在 Messaging API 底下,要按下右方的「Issue」按鈕才會出現
要保管好這兩個憑證,不要輕易外流給別人喔XD
到目前為止,專案基本已經設置的差不多,接下來要準備透過撰寫程式碼來自定義Line聊天機器人,本系列文將以好上手的Python Flask來做為開發。
四、Flask環境架設
環境套件安裝
首先,打開電腦的終端機,
圖為Windows的Power Shell,也可以使用其他習慣的終端機
透過pip的安裝指令安裝會使用到的Python套件:
$ pip install line-bot-sdk
$ pip install beautifulsoup4
$ pip install requests
$ pip install python-dotenv # 安裝讀取env的套件
建立 Flask專案
接著,建立Flask專案、應用程式及資料庫遷移(Migration)
$ pip install flask
Flask是Python熱門的網站框架之一,主要用於 Web 應用程式開發(Restful API)。
Hello world
建置好專案後,先做基本的測試,在app.py的檔案中輸入以下程式碼:
# app.py
from flask import Flask #代表著從flask這個module中引入Flask
app = Flask(__name__)
@app.route('/') # 代表我們宣告了/這個路徑 只要有人訪問這個路徑系統就會進行處理
def hello_world():
# 有人觸發了 / 這個路徑的時候就會呼叫此function並且執行
return 'Hello World!'
if __name__ == '__main__':
app.run()
執行下列指令,python 就會在本機掛載一個伺服器等待有人連線發送請求~
python app.py
透過Postman 向 http://127.0.0.1:5000/ 發送GET請求,就可以看到回應的Hello world 囉~
不熟Postman的讀者也可以直接打開瀏覽器輸入 http://127.0.0.1:5000/ 來測試看看~
從terminal 也可以查看有人發送Request喔!
這裡因為我的程式碼放在test.py,所以執行的時候就是執行test.py
五、上卷:設定LINE Bot憑證之前
伺服器
在我們將程式碼串接Line之前,先來說說架設伺服器這一件事。
架設伺服器一般可以分成兩種:
- 我們可以把自己的電腦做成一台伺服器,也就是將自己的電腦對外開放,讓別人可以透過IP + Port 連線,當然透過步驟四的指令還無法讓電腦具有對外開放的功能。還得透過其他工具,例如:ngrok。透過ngrok 等於在我們的伺服器與ngrok的伺服器上建立一個連結 只要有人訪問到我們ngrok的網址,ngrok都會將流量及訊息再轉發通知我們
- 或者是透過將伺服器架設到雲端,現在非常流行這種做法。例如:GCP、AWS、Microsoft Azure
### 連線至 LINE 頻道
LINE Webhook URL有幾個要求: - 必須使用 SSL 連線(https)
- 必須有domain name(網域名)
而在步驟四中,我們造訪的只是本機,若想要讓本機上的5000 port 具備有對外連線的功能,我們必須透過其他工具讓 http://127.0.0.1:5000/ 對外開放。
不過這個部分會比較複雜一些,打算再於後幾篇來做更詳細一點的說明。
小結
到目前為止,我們大致設定好了Line聊天機器人的基本設置,也創置了Flask專案,接下來幾篇會再分享作者在寫這個Project的過程,任何回饋對於我這個部落格菜鳥都是歡迎的,感謝你的收看,我們下集再見~~
參考資料
Python+LINE Bot教學6步驟快速上手LINE Bot機器人
Introduction
簡明 Python LINE Bot & LIFF JS SDK 入門教學