那些大學課堂的Project:LineBot(壹)專案建置


一、建立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之前,先來說說架設伺服器這一件事。
架設伺服器一般可以分成兩種:

  1. 我們可以把自己的電腦做成一台伺服器,也就是將自己的電腦對外開放,讓別人可以透過IP + Port 連線,當然透過步驟四的指令還無法讓電腦具有對外開放的功能。還得透過其他工具,例如:ngrok。透過ngrok 等於在我們的伺服器與ngrok的伺服器上建立一個連結 只要有人訪問到我們ngrok的網址,ngrok都會將流量及訊息再轉發通知我們
  2. 或者是透過將伺服器架設到雲端,現在非常流行這種做法。例如:GCP、AWS、Microsoft Azure
    ### 連線至 LINE 頻道

    LINE Webhook URL有幾個要求:
  3. 必須使用 SSL 連線(https)
  4. 必須有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 入門教學

#資工系 #大學生 #LINEBot #賣肝 #救台灣







你可能感興趣的文章

Customise mat datepicker header

Customise mat datepicker header

從前端傳資料給後端(GET, POST)、從 PHP 連線到 MySQL 資料庫

從前端傳資料給後端(GET, POST)、從 PHP 連線到 MySQL 資料庫

Getter 與 Setter (賦值運算不使用函式)

Getter 與 Setter (賦值運算不使用函式)






留言討論