Hook 是掛勾的意思,WebHook 是指 Line Bot 要跟我們的網頁掛勾。
先前準備
閱讀本篇前,需要先架設 Nginx/Django 伺服器,並且要有自已的網域並使用 SSL 加密憑証。
上一篇的 Line BOT 簡介中,BOT 可以自動回覆訊息,但功能極為陽春。雖然也可以設定 AI 自動回覆訊息,但這功能將於 2024/05/15 停用。
所以我們必需架設一台伺服器,分析客戶端傳入的內容才決定要如何回應,最終將回應訊息透過 BOT 傳送給客戶端手機,示意圖如下。

Line Channel access token
在底下的伺服器代碼中,有二個很重要的變數要設定,分別是 Line Channel acccess token 及 Line secret。因為 Line 網站上查詢這二個變數的位置有變,所以先說明一下取得的方式。
請先由 https://developers.line.biz/zh-hant/ 選擇 Console,再按下 Messaging API。

接下來再選擇 Messageing API 分頁

往下拉後,會看到 Channel access token,第一次需按下 issue 按鈕產生新的 access token,日後若要變更,可以按下 Reissue。請把 access token 複製記下,等會要填入 python 代碼中的 access_token 變數。

再切換到 Basic settings 分頁

往下拉即可看到 Channel secret,此數字也需記要,要填入後面 python 代碼的 secret 變數中。

Line BOT 設定
請進入 Line BOT 網站的設定/Messaging API,將聊天關掉,Webhook 打開。

新增Django Web Server
在 /server 下使用如下指令新增 Web Server。
🔒 更多內容,請登入會員繼續閱讀。
立即登入上述可以取得客戶端的 id、訊息型態及訊息資料等資訊。
回傳訊息到客戶端
底下的代碼可以在取得客戶端訊息後,立即回傳訊息回客戶端。
🔒 更多內容,請登入會員繼續閱讀。
立即登入line_bot_api.reply_message 不會浪費額度,但只能回傳一次。
line_bot_api.push_message 則會浪費額度,但可以回傳好幾次。
天氣預報
底下的代碼可以取得預報天氣的資料。
🔒 更多內容,請登入會員繼續閱讀。
立即登入地震速報
地震速報需先到 https://opendata.cwa.gov.tw/index 註冊並取得 access token。然後再以底下的代碼查詢地震資料。
