iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0
佛心分享-IT 人自學之術

從0開始學PYTHON系列 第 27

Day27 聊天機器人(1)

  • 分享至 

  • xImage
  •  

來到十三章,打造Line聊天機器人
我也把他分為前中後😓
前為建立初始的Line Echo Bot架構

Echo Bot為聊天機器人的第一個入門程式,它的作用是把收到的文字訊息轉發回去給發送者

先建立一個虛擬環境

C:\Users\cubie>cd /d D:\line
D:\line> python -m venv env

再安裝需要的程式庫列表
requirement.txt程式庫列表:

line-bot-sdk==1.8.0
Flask==1.0.2
gspread==3.1. 0
oauth2client==4.1.3


D:\line>env\scripts\activate
(env) D:\line>cd src
(env) D:\line\src>pip install -r requirements.txt

一個基本的 LNE bot 程式,包含下列四個元素:
1.回應與發送訊息的 LinebotAPI物件(line_bot_api)
2.解讀與包裝訊息的WebhookHandler物件(handler)
3.接收 LINE 伺服器傳入訊息的”/callback”路由
4.捕捉 LINE 訊息事件的裝飾器(decorator)

開始撰寫程式

from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError     <-處理密鑰錯誤

app = Flask (__name__)

line_bot_api = LineBotApi(' 輸入你的頻道存取代碼 ')
handler = WebhookHandler (' 輸入你的頻道密鑰')

@app.route('/')
def index():
       return 'Welcome to Line Bot!'

LineBotApi
用於「操作」訊息相關資料,例如回應訊息、發送訊息、取得用戶資料...等。

WebhookHandler
用於「處理」訊息,例如解讀或包裝訊息內容。

而存取代碼與密鑰必須註冊成為Line開發者,由官方提供


@handler.default()      <-接收任意Line訊息的「預設」裝飾器
def default(event):     <—接收「訊息事件」的參數
       print('捕捉到事件:' , event)

if __name__ == "__main__":
      app.run(debug=True, host='0.0.0.0', port=80)

debug為除錯模式,在本機測驗時建議開啟
此程式將把收到的訊息輸出到網站伺服器的終端機


上一篇
Day26 資料庫(3)
下一篇
Day28 聊天機器人(2)
系列文
從0開始學PYTHON30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言