圖片來源 LINE MESSAGING
LINE 怎麼運作的?
參照官方的圖片如下,我們可以得知
圖片來源 LINE官方
使用者透過LINE APP 向伺服器送出一段文字,這時候會存到LINE的後端,後端再幫你推送到對應的使用者ID
一來一回的過程就成了我們現在日常使用的LINE對話嚕
引述官方的文字
events
Array of webhook event objects
List of webhook events. An empty list may be sent from the LINE Platform to confirm
communication.
白話的說法是當使用者傳送出訊息之後,在LINE 的伺服器上就會建立一筆資料物件,裡面可以包含這件型態
LINE 收訊息的同時會觸發WEBHOOK REQUEST EVENT
裡頭包函了完整的使用者傳送過來的資料以及訊息內容以及保密的TOKEN,LINE SERVER 就是以這個Requestbody
去辧識如何讓後續的程式可以對應回應方式.
設計LINE BOT 的時候,我們常常會遇到也經常會使用的訊息事有這些
我們再把昨天的程式碼加入一個新功能取得台北目前的溫度吧!
把elif 插入if ... else 之間的程式區段,記得把requests套件載入進來
import requests
......
......
......
elif User_MSG == "現在幾度" or User_MSG == "溫度":
Rdata = requests.get(
'https://opendata.cwb.gov.tw/api/v1/rest/datastore/O-A0003-001?Authorization=你的氣象局app api token&locationName=%E8%87%BA%E5%8C%97,&elementName=TEMP¶meterName=CITY').json()
Temp = Rdata["records"]["location"][0]["weatherElement"]
Mdict = dict(enumerate(Temp))
output = Mdict[0]['elementValue']
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=f'現在「台北」的目前溫度是:{output}'))
程式中text=f'現在「台北」的目前溫度是:{output}')
的區段
大家有沒有發現這裡躲著FLASK 樣板的影子呢? 沒錯就是{output} ,還記得嗎?變數的傳遞是用{}包起來的方式進行的.這樣的設計一方面符合JSON的寫法,另一方面也是符合樣板傳遞變數的條件.
其他強化的設計,例如:
因為有很多資料可以查到,而且距離發表這篇文章的時間也差不遠,所以line bot 部署流程在此就不再多作介紹,就請大家自行GOOGLE 吧。
line bot 其實有很多可以延伸的主題,例如生活提醒,股匯巿指標提醒,優惠卷處理等等...
就看大家如何去運用它~