Python+LINE Bot 輕鬆打造股市機器人(四) : LINE Bot基本功能-推播與回覆

閱讀時間約 7 分鐘
上篇文章中,我們學會了如何串接各個平台,並且簡單做出了一個會模仿我們說話的機器人,接下來我們將會從LINE Bot有哪些基本的回訊息功能來介紹起,而今天就先從推播以及回覆開始說起吧!!

何謂推播與回覆

其實在上一篇教學中,我們就有使用到推播與回覆功能,簡單來說,推播就是機器人主動傳送訊息,而回覆則是使用者輸入訊息後,機器人就會根據訊息進行相對應的回覆
但近幾年LINE開始針對機器人開始收費了,因此免費版的LINE Bot就會有一些的限制,像是一個月推播只能使用500則,而回覆則是無上限,因此想使用推播功能的使用者,就要注意這500則的上限,不然也可以改製作Telegram的機器人,Telegram就是免費無上限的,但因為本人還是習慣使用LINE,因此未來如果有機會再考慮看看是否要將股市功能製作到 Telegram上。

程式碼編寫

推播

在上一篇中,我們所使用到推播的地方就是在程式佈署完畢後,機器人會主動說出「你可以開始了」的字樣,在這我們使用到的程式碼就是「push_message」,所以我們打開 Visual Studio Code ,找到以下的程式碼,可以看到該段程式碼正是用到了push_message,而後方需要輸入兩個參數,一個為自己LINE Bot的ID,一個為要輸出的訊息為何
line_bot_api.push_message('你自己的ID', TextSendMessage(text='你可以開始了'))
那有人就會問拉,我怎麼知道目前我使用了幾則推播呢?
這部分我們要去LINE DEV中進行查詢,我們進入LINE DEV並且登入自己的LINE帳戶後,我們點選下圖中「Statistics」,也就是統計的部分
接著往下看就可以看到每日的推播(Push messages)以及回覆(Reply messages)次數,也可以看到每月的統整次數,這樣就可以根據當月剩餘次數去安排如何進行推播

回覆

回覆將會是我們LINE Bot中最常使用的一個功能,只要是使用者輸入一段訊息,機器人回覆相對應的訊息,這就叫做「回覆
最基本的回覆就是回覆指定文字,因此,我們今天就是要來練習如何回覆指定文字吧!!
還記得我們上篇教學中製作的機器人嗎,當我們隨便輸入文字後,機器人就會回覆一模一樣的話回來,這就是最簡單的回覆訊息方式,其程式碼如下
@handler.add(MessageEvent, message=TextMessage) 
def handle_message(event):
  message =event.message.text
  line_bot_api.reply_message(event.reply_token,TextSendMessage(message))
  1. @handler.add(MessageEvent, message=TextMessage) : 為告訴LINE Bot,當使用者輸入訊息,且訊息是文字時,我們就執行以下的程式碼,其中TextMessage為LINE Bot處理文字時所使用,我們將其放入message中
  2. message =event.message.text : 我們將接收到的message中的文字利用「.text」取出,並且再放入message中
  3. line_bot_api.reply_message(event.reply_token,TextSendMessage(message)) : 如果要回覆的話,就使用「reply_message」,往後的回覆都必須使用此函式,而括弧中必須傳入兩個參數,一個為接收訊息的token,每當有使用者輸入訊息時就會產生一個token,該token只會使用1次,用完即丟,此主要是因為LINE Bot可能需要同時面對多個使用者,其必須知道是要回覆哪個使用者訊息。另一個參數就是我們要回傳給使用者的訊息,在此我們希望的是回覆一模一樣的話,因此,我們要將剛剛接收到並擷取出來的訊息放入此參數,而我們前面說過,我們要回傳文字訊息的話,就必須加上TextSendMessage,不然系統就會出現錯誤唷!!
但這時就會有人問拉,這機器人只會回覆一模一樣的話,真的太不夠智慧了吧,我們當然是希望回傳不一樣的文字才對
所以,我們就來製作一個,當LINE Bot收到特定訊息時,我們可以回傳另一個特定訊息回去
import re 
@handler.add(MessageEvent, message=TextMessage) 
def handle_message(event):
  message = event.message.text
  if re.match("你是誰",message):
    line_bot_api.reply_message(event.reply_token,TextSendMessage("才不告訴你勒~~"))
  else:
    line_bot_api.reply_message(event.reply_token,TextSendMessage(message))
  1. if re.match("你是誰",message) : 在此我們使用到re,re.match的作用就是判斷文字是否一樣,我們一樣需要2個參數,一個為要符合的文字,一個為要比對的文字,在此我們希望的是接收的訊息為「你是誰」,所以當使用者輸入你是誰時,LINE Bot就會跑到這個if中執行其中的程式碼(※記得在先前import那多加上「import re」,這樣才能使用唷!!)
  2. line_bot_api.reply_message(event.reply_token,TextSendMessage("才不告訴你勒~~")) : 這行應該不用多說了吧,跟上面唯一不同的地方就在最後要回傳的訊息,我們改為回傳「才不告訴你勒~~」

上傳並佈署

最後當然就是要重新將寫好的程式碼上傳到Github中,並佈署到heroku上囉!!
記得要先將寫好的程式碼按下「Ctrl + s」才會儲存喔!!
一樣,先打開自己的github,並且選擇上次創建的資料夾,接下來一樣點選「Add file」中的「Upload files」進行上傳
進去以後,將我們更改過的app.py進行上傳,如果不記得哪個程式檔有修改過,也可以將所有程式檔一同上傳更新,這樣就不會遺漏掉了
如果程式檔有修改過,重新上傳的檔案就會顯示最新時間「now」,如果上傳一樣的檔案,但沒有進行修改過,github將不會更改上傳時間,因此可以查看這時間是否有更新,來判斷檔案是否上傳成功
接下來打開heroku進行佈署
一樣點選「Deploy
向下滑到底點選「Deploy Branch」進行佈署
當佈署成功後,我們的機器人就會跳出「你可以開始了」表示佈署成功,接著我們一樣輸入「你好」,機器人一樣會回答「你好」,但當我們輸入「你是誰」時,機器人則告訴我們「才不告訴你勒~~」,這樣就表示我們今天的任務達成拉🤗

總結

今天我們又更進一步了,不再只是單純回答一模一樣的文字,則是有點像是對話的回答了,在這大家可以先嘗試指定多個特定訊息,並且讓機器人回傳各式各樣的訊息,也要記得最後一步「上傳並佈署」,往後都會是一樣的步驟,就不會再多做說明,所以請熟記這一步驟,那我們下次就再教大家更多LINE Bot提供的不同回話方式吧!!
為什麼會看到廣告
avatar-img
173會員
59內容數
我出生於財務金融與資訊背景,滿20歲便開始踏入股市。從當初對股市一無所知的菜鳥,到現在成為一名專注於AI股市研究的分析師,這是我的成長歷程。   我崇尚彼得·林區所強調的理念,認為在生活和工作中觀察,從周遭環境中挑選出適合投資的股票,並搭配近期快速崛起的程式交易、大數據分析等AI技術,立志打造輕鬆又便利的投資之路。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
在上一篇文章中,我們已經準備好製作LINE機器人的工具了,接下來我們就要來做一個最簡單的Python與LINE的串接練習,讓我們的機器人活起來,並且做出最基本的回話功能,如果還沒準備好串接所需的工具,記得先去看《【python】Python+LINE Bot 輕鬆打造股市機器人(二) : 所需準備的
在我們正式開始Python串接LINE Bot的教程之前,有必要先為大家準備好所需的工具。實際上,製作LINE Bot的工具有很多選擇,我將會介紹我在製作過程中所使用的具體工具有哪些,以及如何進行事前的準備工作。讓我們一起走進這個有趣的製作過程吧!
每當要研究投資標的時,你是否也會覺得A網站的財報資料完整,又覺得B網站的選股條件完善,又覺得C網站的新聞比較重要,有時身邊又沒有隨身攜帶筆電怎麼好查詢呢?這時可能就在想怎麼沒有人開發一個程式能完成符合我想要的功能啊~~與其求助於人,不如自己動手做最好,有相同煩惱的人,LINE Bot超適合你!!
在上一篇文章中,我們已經準備好製作LINE機器人的工具了,接下來我們就要來做一個最簡單的Python與LINE的串接練習,讓我們的機器人活起來,並且做出最基本的回話功能,如果還沒準備好串接所需的工具,記得先去看《【python】Python+LINE Bot 輕鬆打造股市機器人(二) : 所需準備的
在我們正式開始Python串接LINE Bot的教程之前,有必要先為大家準備好所需的工具。實際上,製作LINE Bot的工具有很多選擇,我將會介紹我在製作過程中所使用的具體工具有哪些,以及如何進行事前的準備工作。讓我們一起走進這個有趣的製作過程吧!
每當要研究投資標的時,你是否也會覺得A網站的財報資料完整,又覺得B網站的選股條件完善,又覺得C網站的新聞比較重要,有時身邊又沒有隨身攜帶筆電怎麼好查詢呢?這時可能就在想怎麼沒有人開發一個程式能完成符合我想要的功能啊~~與其求助於人,不如自己動手做最好,有相同煩惱的人,LINE Bot超適合你!!
你可能也想看
Google News 追蹤
Thumbnail
👨‍💻 簡介 今天這篇主要是帶大家快速建立屬於自己的 Telegram bot,申請 bot 的部分我會附上網址,請準備好之後再來開始。 🛠️ 使用工具 Python 3.9.6 TG Bot 📝 功能需求 輸入指令讓 TG Bot 回傳訊息 接受傳入參數並進行簡單回傳 設定
Thumbnail
打造 LINE AI Chatbot,將 LINE 官方渠道串接 ChatGPT AI,讓 AI 根據用戶問題給予對應回覆,在回覆廣度或深度都更完整。輕鬆處理龐大訊息量,自動生成回覆並立即回應,提升訊息處理效率!更支援「針對 AI 回答設定框架」,於指定資料表內搜尋資料生成回覆,提高回覆準確性!
Thumbnail
在日常生活和工作中,我們經常需要發送電子郵件來進行溝通和分享資訊。本文將介紹如何使用Python的pywin32模組連接到Outlook,並通過程式來自動發送郵件。
Thumbnail
設計程式來讀取欲傳送訊息之參數txt檔案,再利用程式自動傳出訊息至LINE群組。能簡易使用於任何場合。
Thumbnail
欲傳送之內容,由使用者輸入於文字檔內,執行本執行檔後,指定之LINE群組全員,將會收到推播訊息
Thumbnail
上回說明的手動下指令,傳出訊息。為了節省手動輸入之動作,將欲執行的curl指令內容,事先作成執行檔。當需要傳送訊息時,只要按兩下執行檔,便可立刻傳出訊息至LINE群組內之全員 2. 說明 2.1 因每次要傳送內容不同,將這些會變動的訊息資料,輸入後保存 於bat執行檔內
Thumbnail
LINE 在台灣有許多人使用,是一天裡開啟次數最多的APP,是生活中最重要的社群平台。 但很多人不知道LINE官方有個免費推播訊息的服務LINE Notify
Thumbnail
 程式開發,功能 :               本程式執行後,自動寄出email,寄出的內容可依照讀取的參數檔內容而決定
Thumbnail
本文將介紹如何使用 Python 實現 LINE Notify 功能。LINE Notify 允許用戶通過 Line 應用程序接收自定義通知,非常適合於個人項目或業務流程中。LINE Notify 是 LINE 提供的一項功能,允許用戶從他們的應用程序、服務或系統中,透過LINE 發送通知。
Thumbnail
👨‍💻 簡介 今天這篇主要是帶大家快速建立屬於自己的 Telegram bot,申請 bot 的部分我會附上網址,請準備好之後再來開始。 🛠️ 使用工具 Python 3.9.6 TG Bot 📝 功能需求 輸入指令讓 TG Bot 回傳訊息 接受傳入參數並進行簡單回傳 設定
Thumbnail
打造 LINE AI Chatbot,將 LINE 官方渠道串接 ChatGPT AI,讓 AI 根據用戶問題給予對應回覆,在回覆廣度或深度都更完整。輕鬆處理龐大訊息量,自動生成回覆並立即回應,提升訊息處理效率!更支援「針對 AI 回答設定框架」,於指定資料表內搜尋資料生成回覆,提高回覆準確性!
Thumbnail
在日常生活和工作中,我們經常需要發送電子郵件來進行溝通和分享資訊。本文將介紹如何使用Python的pywin32模組連接到Outlook,並通過程式來自動發送郵件。
Thumbnail
設計程式來讀取欲傳送訊息之參數txt檔案,再利用程式自動傳出訊息至LINE群組。能簡易使用於任何場合。
Thumbnail
欲傳送之內容,由使用者輸入於文字檔內,執行本執行檔後,指定之LINE群組全員,將會收到推播訊息
Thumbnail
上回說明的手動下指令,傳出訊息。為了節省手動輸入之動作,將欲執行的curl指令內容,事先作成執行檔。當需要傳送訊息時,只要按兩下執行檔,便可立刻傳出訊息至LINE群組內之全員 2. 說明 2.1 因每次要傳送內容不同,將這些會變動的訊息資料,輸入後保存 於bat執行檔內
Thumbnail
LINE 在台灣有許多人使用,是一天裡開啟次數最多的APP,是生活中最重要的社群平台。 但很多人不知道LINE官方有個免費推播訊息的服務LINE Notify
Thumbnail
 程式開發,功能 :               本程式執行後,自動寄出email,寄出的內容可依照讀取的參數檔內容而決定
Thumbnail
本文將介紹如何使用 Python 實現 LINE Notify 功能。LINE Notify 允許用戶通過 Line 應用程序接收自定義通知,非常適合於個人項目或業務流程中。LINE Notify 是 LINE 提供的一項功能,允許用戶從他們的應用程序、服務或系統中,透過LINE 發送通知。