Python+LINE Bot 輕鬆打造股市機器人(七) : LINE Bot基本功能- 按鈕樣板

更新於 發佈於 閱讀時間約 10 分鐘
在前幾篇基本教學中,我們想要LINE Bot回覆某個功能時,都必須要自行手動輸入特定關鍵字,但有時候我們卻希望輸入指令後,LINE Bot回覆的是「選單」功能,可以讓我們進行多樣化的選擇,不需要每個指令都手動輸入,可以讓操作上更加便利,好在LINE Bot提供了多樣化的選單回覆功能,今天我們就先從「按鈕樣板」開始學起吧!!

單一按鈕樣板

由於按鈕樣板相當的方便,因此我個人許多的回覆功能都是以此進行選單的選擇
首先是單一按鈕樣板,以下圖為例,當我們輸入關鍵字「股票 + 股票名稱(此為台積電)」,這時LINE Bot就會回覆兩個選項,分別為「台積電 個股資訊」以及「台積電 個股新聞」,而當我們點選該兩項功能後,就可再進行更多的回覆,這部分往後會更深入的教大家

LINE Bot程式碼

而程式碼的部分其實相當簡單,我們只要在主要的程式碼區輸入幾行程式碼即可完成
大致上的重點可分成以下幾點:
  • if “股票 ” in message : 還記得我們之前在判斷關鍵字時,我們都是使用「re.match」嗎,例如上篇中的if re.match(‘我誰’,message),該關鍵字判斷為「完全符合」,也就是要完全輸入一模一樣的字,機器人才會回覆相對應的訊息,而本篇使用的「in message」則為「部分符合」,也就是輸入的訊息中有包含關鍵字即可,以本篇來說,我們輸入的訊息中只要有「股票 」,機器人就會進行該指令
  • TemplateSendMessage : 為LINE提供的按鈕樣板模組
  • alt_text = “股票資訊” : 該段有點像是標題的意思,並不會出現在回覆的訊息中,主要功能為提醒,因為當我們往後程式碼寫得越來越多時,我們很可能會忘記該段到底再寫什麼東西,這時就必須靠我們所命名的標題來進行提醒
  • thumbnail_image_url = : 該段為圖片區,也就是我們上面呈現出陳陳的嘉理中的圖片
  • title與text : 這段如果跟上方的回覆圖進行比對應該不難吧,就像是大標跟小標的意思
  • CarouselColumn : 為按鈕樣板中顯示回覆訊息的部分,包含圖片、按鈕等功能
  • actions : 此段[]中的程式碼為選單按鈕的功能設計,在此很簡單只使用到了label與text,有興趣的人可以將之前所學的功能進行一個結合運用
if "股票 " in message:
  buttons_template_message = TemplateSendMessage(
  alt_text = "股票資訊",
  template=CarouselTemplate(
    columns=[
      CarouselColumn(
      thumbnail_image_url ="https://chenchenhouse.com//wp-content/uploads/2020/10/%E5%9C%96%E7%89%871-2.png",
      title = message + " 股票資訊",
      text ="請點選想查詢的股票資訊",
      actions =[
        MessageAction(
          label= message[3:] + " 個股資訊",
          text= "個股資訊 " + message[3:]),
        MessageAction(
          label= message[3:] + " 個股新聞",
          text= "個股新聞 " + message[3:])
          ]
        )
      ]
    )
  )
  line_bot_api.reply_message(event.reply_token, buttons_template_message)
else:
  line_bot_api.reply_message(event.reply_token, TextSendMessage(message))

單一按鈕樣板注意事項

最後提醒一下,在寫程式中我們難免會遇到需要修復的BUG,在這先跟大家說一個按鈕樣板的限制,也就是該樣板的按鈕(下圖紅框位置),最多只能輸入3個,超過就會顯示錯誤

多樣板組合按鈕

這時一定有人會覺得只能放3個按鈕也太少了吧,別擔心,雖然單一按鈕樣板只能放3個按鈕選單,但我們可以結合多個按鈕樣板,將其組合出更多樣的按鈕選單
從下圖可以看到,我們修改了一下程式碼,就可以讓LINE Bot同時回覆多個按鈕樣板

LINE Bot程式碼

而程式碼的部分看起來好像很多,但其實跟單一按鈕樣板大同小異,大多都只是重複的部分,稍微看一下應該就可以了解,並沒有新增什麼新的程式碼
if "股票 " in message:
  buttons_template_message = TemplateSendMessage(
  alt_text = "股票資訊",
  template=CarouselTemplate(
    columns=[
      CarouselColumn(
        thumbnail_image_url ="https://chenchenhouse.com//wp-content/uploads/2020/10/%E5%9C%96%E7%89%871-2.png",
        title = message[3:] + " 股票資訊",
        text ="請點選想查詢的股票資訊",
        actions =[
          MessageAction(
            label= message[3:] + " 個股資訊",
            text= "個股資訊 " + message[3:]),
          MessageAction(
            label= message[3:] + " 個股新聞",
             text= "個股新聞 " + message[3:]),
        ]
      ),
      CarouselColumn(
        thumbnail_image_url ="https://chenchenhouse.com//wp-content/uploads/2020/10/%E5%9C%96%E7%89%871-2.png",
        title = message[3:] + " 股票資訊",
        text ="請點選想查詢的股票資訊",
        actions =[
          MessageAction(
            label= message[3:] + " 最新分鐘圖",
            text= "最新分鐘圖 " + message[3:]),
          MessageAction(
            label= message[3:] + " 日線圖",
            text= "日線圖 " + message[3:]),
        ]
      ),
      CarouselColumn(
        thumbnail_image_url ="https://chenchenhouse.com//wp-content/uploads/2020/10/%E5%9C%96%E7%89%871-2.png",
        title = message[3:] + " 股利資訊",
        text ="請點選想查詢的股票資訊",
        actions =[
          MessageAction(
            label= message[3:] + " 平均股利",
            text= "平均股利 " + message[3:]),
          MessageAction(
            label= message[3:] + " 歷年股利",
            text= "歷年股利 " + message[3:])
        ]
       ),
      ]
     )
    )
  line_bot_api.reply_message(event.reply_token, buttons_template_message)
else:
  line_bot_api.reply_message(event.reply_token, TextSendMessage(message))
多樣版組合按鈕注意事項
雖然說多樣版組合按鈕可以顯示更多的選單進行選擇,但其仍然有限制,聽說最多是只能放置10個單一按鈕樣板(因為本人沒放過那麼多個,所以不知道其極限是否真的為10個😅),但10個其實也很多了,一個單一按鈕樣板可放3個選項,10個就可以放置30個選項,應該很少會需要用到那麼多個的功能吧!!

總結

今天學的按鈕樣板真的相當好用,是我目前製作LINE Bot中最常使用的功能之一,所以大家一定要學會使用這個回覆功能,並且搭配先前我們的教學,以及一些爬蟲技巧,這樣大致上就可以進行一個較為完善的聊天機器人了。
為什麼會看到廣告
avatar-img
174會員
59內容數
我出生於財務金融與資訊背景,滿20歲便開始踏入股市。從當初對股市一無所知的菜鳥,到現在成為一名專注於AI股市研究的分析師,這是我的成長歷程。   我崇尚彼得·林區所強調的理念,認為在生活和工作中觀察,從周遭環境中挑選出適合投資的股票,並搭配近期快速崛起的程式交易、大數據分析等AI技術,立志打造輕鬆又便利的投資之路。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
今天我們再來教更多不一樣的回訊方式,像是讓機器人回傳圖片、影片,甚至是音訊,使我們的機器人更佳的活靈活現,就讓我們趕快開始今天的教學吧!!
今天我們繼續來教學LINE Bot的一些基本功能,在之前的教學中,我們都單純的讓機器人回覆文字,但這樣就讓機器人顯得有點生硬,為了讓其更加的活靈活現,LINE官方還提供其他不一樣的回訊方式,而今天我們就來教大家如何讓機器人回傳貼圖以及位置座標吧!!
在上篇文章中,我們學會了如何串接各個平台,並且簡單做出了一個會模仿我們說話的機器人,接下來我們將會從LINE Bot有哪些基本的回訊息功能來介紹起,而今天就先從推播以及回覆開始說起吧!!
在上一篇文章中,我們已經準備好製作LINE機器人的工具了,接下來我們就要來做一個最簡單的Python與LINE的串接練習,讓我們的機器人活起來,並且做出最基本的回話功能,如果還沒準備好串接所需的工具,記得先去看《【python】Python+LINE Bot 輕鬆打造股市機器人(二) : 所需準備的
在我們正式開始Python串接LINE Bot的教程之前,有必要先為大家準備好所需的工具。實際上,製作LINE Bot的工具有很多選擇,我將會介紹我在製作過程中所使用的具體工具有哪些,以及如何進行事前的準備工作。讓我們一起走進這個有趣的製作過程吧!
每當要研究投資標的時,你是否也會覺得A網站的財報資料完整,又覺得B網站的選股條件完善,又覺得C網站的新聞比較重要,有時身邊又沒有隨身攜帶筆電怎麼好查詢呢?這時可能就在想怎麼沒有人開發一個程式能完成符合我想要的功能啊~~與其求助於人,不如自己動手做最好,有相同煩惱的人,LINE Bot超適合你!!
今天我們再來教更多不一樣的回訊方式,像是讓機器人回傳圖片、影片,甚至是音訊,使我們的機器人更佳的活靈活現,就讓我們趕快開始今天的教學吧!!
今天我們繼續來教學LINE Bot的一些基本功能,在之前的教學中,我們都單純的讓機器人回覆文字,但這樣就讓機器人顯得有點生硬,為了讓其更加的活靈活現,LINE官方還提供其他不一樣的回訊方式,而今天我們就來教大家如何讓機器人回傳貼圖以及位置座標吧!!
在上篇文章中,我們學會了如何串接各個平台,並且簡單做出了一個會模仿我們說話的機器人,接下來我們將會從LINE Bot有哪些基本的回訊息功能來介紹起,而今天就先從推播以及回覆開始說起吧!!
在上一篇文章中,我們已經準備好製作LINE機器人的工具了,接下來我們就要來做一個最簡單的Python與LINE的串接練習,讓我們的機器人活起來,並且做出最基本的回話功能,如果還沒準備好串接所需的工具,記得先去看《【python】Python+LINE Bot 輕鬆打造股市機器人(二) : 所需準備的
在我們正式開始Python串接LINE Bot的教程之前,有必要先為大家準備好所需的工具。實際上,製作LINE Bot的工具有很多選擇,我將會介紹我在製作過程中所使用的具體工具有哪些,以及如何進行事前的準備工作。讓我們一起走進這個有趣的製作過程吧!
每當要研究投資標的時,你是否也會覺得A網站的財報資料完整,又覺得B網站的選股條件完善,又覺得C網站的新聞比較重要,有時身邊又沒有隨身攜帶筆電怎麼好查詢呢?這時可能就在想怎麼沒有人開發一個程式能完成符合我想要的功能啊~~與其求助於人,不如自己動手做最好,有相同煩惱的人,LINE Bot超適合你!!
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
打造 LINE AI Chatbot,將 LINE 官方渠道串接 ChatGPT AI,讓 AI 根據用戶問題給予對應回覆,在回覆廣度或深度都更完整。輕鬆處理龐大訊息量,自動生成回覆並立即回應,提升訊息處理效率!更支援「針對 AI 回答設定框架」,於指定資料表內搜尋資料生成回覆,提高回覆準確性!
Thumbnail
設計程式來讀取欲傳送訊息之參數txt檔案,再利用程式自動傳出訊息至LINE群組。能簡易使用於任何場合。
Thumbnail
上回說明的手動下指令,傳出訊息。為了節省手動輸入之動作,將欲執行的curl指令內容,事先作成執行檔。當需要傳送訊息時,只要按兩下執行檔,便可立刻傳出訊息至LINE群組內之全員 2. 說明 2.1 因每次要傳送內容不同,將這些會變動的訊息資料,輸入後保存 於bat執行檔內
Thumbnail
 程式開發,功能 :               本程式執行後,自動寄出email,寄出的內容可依照讀取的參數檔內容而決定
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。
Thumbnail
本文將介紹如何使用 Python 實現 LINE Notify 功能。LINE Notify 允許用戶通過 Line 應用程序接收自定義通知,非常適合於個人項目或業務流程中。LINE Notify 是 LINE 提供的一項功能,允許用戶從他們的應用程序、服務或系統中,透過LINE 發送通知。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
打造 LINE AI Chatbot,將 LINE 官方渠道串接 ChatGPT AI,讓 AI 根據用戶問題給予對應回覆,在回覆廣度或深度都更完整。輕鬆處理龐大訊息量,自動生成回覆並立即回應,提升訊息處理效率!更支援「針對 AI 回答設定框架」,於指定資料表內搜尋資料生成回覆,提高回覆準確性!
Thumbnail
設計程式來讀取欲傳送訊息之參數txt檔案,再利用程式自動傳出訊息至LINE群組。能簡易使用於任何場合。
Thumbnail
上回說明的手動下指令,傳出訊息。為了節省手動輸入之動作,將欲執行的curl指令內容,事先作成執行檔。當需要傳送訊息時,只要按兩下執行檔,便可立刻傳出訊息至LINE群組內之全員 2. 說明 2.1 因每次要傳送內容不同,將這些會變動的訊息資料,輸入後保存 於bat執行檔內
Thumbnail
 程式開發,功能 :               本程式執行後,自動寄出email,寄出的內容可依照讀取的參數檔內容而決定
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。閱讀者可以從中獲得交易策略方面的參考,並瞭解相關風險和盈虧。
Thumbnail
本文將介紹如何使用 Python 實現 LINE Notify 功能。LINE Notify 允許用戶通過 Line 應用程序接收自定義通知,非常適合於個人項目或業務流程中。LINE Notify 是 LINE 提供的一項功能,允許用戶從他們的應用程序、服務或系統中,透過LINE 發送通知。