更新於 2023/04/10閱讀時間約 4 分鐘

Python+LINE Bot 輕鬆打造股市機器人(五) : LINE Bot基本功能-傳送貼圖與位置

今天我們繼續來教學LINE Bot的一些基本功能,在之前的教學中,我們都單純的讓機器人回覆文字,但這樣就讓機器人顯得有點生硬,為了讓其更加的活靈活現,LINE官方還提供其他不一樣的回訊方式,而今天我們就來教大家如何讓機器人回傳貼圖以及位置座標吧!!

Line Bot回覆貼圖

首先,我們一樣打開app.py的程式碼檔案,接著在編寫主程式碼的地方修改成如下的程式碼
我們主要修改的程式碼為以下這段,我們跟上一篇一樣輸入「你是誰」,但這次並不是回覆文字了,而是希望機器人回傳一個貼圖給我們,這裡我們就要用到LINE官方提供的函式「StickerSendMessage」,其中我們需要用到2個參數,一個為package_id,一個是sticker_id,而最後我們一樣要用「reply_message」讓機器人進行回覆
if re.match("你是誰",message):
  sticker_message = StickerSendMessage(
    package_id='1070',
    sticker_id='17878'
  )
line_bot_api.reply_message(event.reply_token, sticker_message)
但這時大家應該很疑惑吧,我們怎麼知道package_id跟sticker_id要填入多少呢?
別擔心,由於目前只能回覆LINE指定的貼圖,所以LINE官網有提供指定的 package_id跟sticker_id,我們可到LINE貼圖中去查詢
進入官網後,可以在開頭的地方發現官網的介紹,當我們 package_id輸入446,而 sticker_id 輸入1988時,我們就可以得到一個饅頭人跟一個小黃鴨出遊的貼圖
而往下可以看到許多不一樣的貼圖,只要將其package_id跟sticker_id填上,就可以讓機器人回覆相對應的貼圖拉
在此,我們範例是填寫package_id=’1070’,以及sticker_id=’17878’,將寫好的程式碼上傳到github,並且佈署到heroku上,佈署成功後,當我們輸入你是誰,機器人就會回傳一個白目的貼圖🤣

Line Bot回覆位置

接下來是讓機器人傳送位置的方式,當我輸入「你要去哪裡」時,機器人就回傳了「高雄市壽山動物園」的地標給我,究竟是如何做的呢?我們看下去吧!!
主程式碼大致上如下的寫法
我們修改的程式碼如下,我們使用到了LINE提供的函式「LocationSendMessage」,其中需要輸入4個參數分別為title,為標題名稱,可以對應一下上方完成時出現的位置,其位置為地標的大標題,接著是address,是輸出地址,一樣可以參考上方完成時出現的位置,其位置為地標的小標題,接下來剩餘的兩個參數為該地標的經緯度,當輸入完成時,我們就可以呈現如上完成圖的樣式
if re.match("你要去哪裡",message):
  location_message = LocationSendMessage(
    title= "高雄市壽山動物園",
    address= "高雄市鼓山區萬壽路350號",
    latitude= 22.636113729166258,
    longitude= 120.27545572162684
  )
line_bot_api.reply_message(event.reply_token, location_message)
但這裡大家又有疑問拉,我怎麼知道我想要輸出的地標,它們的經緯度是多少呢?
這時我們就必須前往Google的地圖去查詢
首先,我們先查詢我們要的地標,在此我輸入了「高雄市壽山動物園」
接著我們對地標按下「右鍵」,這時可以看到一串數字,此即為我們要尋找的經緯度,接著對下方紅框之處按下「左鍵」,這樣我們就成功複製了,最後只要將這經緯度貼到上方latitude及longitude的位置即可完成

總結

今天又多學會了如何回傳貼圖跟位置座標,但這仍然是LINE BOT中的冰山一角,還有更多更有趣的回覆功能,在往後都會陸續教給大家,大家可以先好好學習今天的部分,並做延伸練習,想想自己有哪些想要的功能是要機器人回傳貼圖,抑或是回傳地標的
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.