Line Chatbot with Python 簡易架設使用紀錄
一、Line@ 申請
首先需要申請 Line@ 相關服務,包括 Line@ MANAGER 與 Message API。
Line@ MANAGER: https://admin-official.line.me/
Message API: https://developers.line.biz/en/services/
(Message API 是在 Line Developers 裡的一項服務,使用 Free 或著 Developer Trial 皆可)
至此其實已經可以在 Line@ MANAGER 裡設定相關的關鍵字回覆,可以先試玩一下~
二、Server 架設
要使用自行撰寫的程式,就需要一個 Server 來讓 Message API 可以連結,而且還必須是 HTTPS (Message API 只接受 HTTPS),在網路上很快地發現兩個選擇:
- Heroku
- ngrok
而我想要快的測試,所以就使用了 ngrok 來當作 Server,架設十分簡易,官方下載程式,打開後輸入指令,就完成了!
就這麼一行指令即可 (port 5000 是因為 Message API 的要求) :
就這麼一行指令即可 (port 5000 是因為 Message API 的要求) :
ngrok http -region ap 5000
三、 開始使用 Python
這邊需要安裝幾個套件 (直接 pip 安裝即可):
- line-bot-sdk (https://github.com/line/line-bot-sdk-python)
- flask
接下來使用 line-bot-sdk 官方的範例程式,就可以開始編寫自己想要的應答規則了!
記得填上自己的 CHANNEL_ACCESS_TOKEN 跟 CHANNEL_SECRET,這兩串值可以在申請好的 Message API 裡找到。
這邊附上我有做修改的地方:
因為想要將資訊記錄在自己的電腦裡,所以就變成這樣寫了,如果沒有要記錄資訊的話,這樣就行了:
這邊有兩個值得注意的地方:
這邊附上我有做修改的地方:
圖一、handle_message 編改
因為想要將資訊記錄在自己的電腦裡,所以就變成這樣寫了,如果沒有要記錄資訊的話,這樣就行了:
圖二、不記錄資訊的 handle_message
這邊有兩個值得注意的地方:
- Line 提供的 Emoji-list 裡面給的值要使用chr()轉換,這樣一來即可顯示你想要的 Emoji。
- 想要回傳多個訊息(reply multiple message)的話,使用 List 將訊息包起來就行了 (如圖二的57~61行)
留言
張貼留言