iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0
Python

python零之旅系列 第 25

DAY25. Python GUI - 發送LINE Notify通知

  • 分享至 

  • xImage
  •  

GUI的學習即將進入尾聲,
因此最後我們運用一項實作來作為這次學習的結尾。
那就趕快讓我們開始吧!


1.取得LINE Notify發行權杖

我們首先要打開LINE Notify網站並登入。
網址:https://notify-bot.line.me/zh_TW/
https://ithelp.ithome.com.tw/upload/images/20241008/20169195fEcPX40da9.png

接著看到右上角的自己LINE名稱,
按下選擇個人頁面。
https://ithelp.ithome.com.tw/upload/images/20241008/20169195uBXRbU3x8P.png

裡面便可以看到發行權杖畫面,就可以申請囉!
注意:
權杖金讑只會出現一次,
要記得先保存下來,
關閉視窗就會消失了。
https://ithelp.ithome.com.tw/upload/images/20241008/20169195NXaDpz10iy.png

我們可以到LINE程式查看是否申請權杖成功。
https://ithelp.ithome.com.tw/upload/images/20241008/20169195S8Smzg8NZK.png

2. 發送 LINE Notify 訊息

接下來,我們可以來撰寫程式碼。
首先,
我們需要輸入url
也就是輸入需要回傳資訊的網址。
並使用token輸入剛剛申請的權杖。

接下來說明13-19行的作用:
這段程式碼建立了一個名為 headers 的字典,
這個字典包含了 HTTP 請求的「標頭」資訊。
它指定了一個 Authorization 標頭,並將權杖放在其中。

'Bearer ' + token 是指
Authorization 使用了 Bearer Token 認證方式。

接下來我們定義了一個名為 data 的字典,
這個字典包含想要傳送到 LINE Notify API 的實際資料。

'message': msg 表示想要在 LINE 上傳送的訊息內容,
其中 msg 是來自於使用者輸入的變數或其他地方生成的訊息。
當這個字典被傳送到 LINE Notify API 時,
message 參數的值會顯示為訊息,並發送給在 LINE Notify 上授權的接收者。

最後我們使用 requests.post() 方法,
它是用來發送 HTTP POST 請求的方法。

我們設立一個多行輸入框,
並將其中的內容設為msg,
透過get方法取的其中內容並放入message中。

並透過之前所學的知識,
設立送出及清除按鈕。
https://ithelp.ithome.com.tw/upload/images/20241008/20169195DqkM3XnglP.png

運行後便會出現輸入框,
當我們在輸入框內寫入內容並按下送出時,
LINE Notify就會接收訊息,
並發出同樣的內容在LINE聊天室中。
https://ithelp.ithome.com.tw/upload/images/20241008/20169195x7hGfdjMxv.png
https://ithelp.ithome.com.tw/upload/images/20241008/20169195SQGlmV0ClD.png

3. LINE Notify 發送圖片

除了文字訊息,
我們也可以透過LINE Notify發送圖片並新增彈窗。

當我們按下傳送訊息或是發送圖片按鈕時,
設計一個messagebox並顯示已發送。
https://ithelp.ithome.com.tw/upload/images/20241008/20169195iSkSEAMcoH.png
https://ithelp.ithome.com.tw/upload/images/20241008/20169195T5sWiZYxFd.png

接下來,
我們需要使用 filedialog 方法去取得圖片的路徑,
並設立messagebox彈窗確認是否發送。
如果結果為True,
則將圖片轉為 二進制 的方式,
並使用字典格式傳送。
https://ithelp.ithome.com.tw/upload/images/20241008/20169195sWSKrBNys9.png
https://ithelp.ithome.com.tw/upload/images/20241008/20169195a2RfOqCWhf.png

最後,我們來看看完整程式碼和運行結果!
https://ithelp.ithome.com.tw/upload/images/20241008/20169195sFfpkBBtBP.png
https://ithelp.ithome.com.tw/upload/images/20241008/20169195qcm0hGVQEG.png
https://ithelp.ithome.com.tw/upload/images/20241008/20169195DUSVKSEtin.png

運行後我們就能發送圖片了!
https://ithelp.ithome.com.tw/upload/images/20241008/20169195O3fivKSHH2.png


以上為這次的學習,
因為是與其他網站連結互動,
程式碼的部分也就更為複雜,很多都是之前沒有看過的,
因此花了比較多的時間去理解。

參考資料:
https://steam.oxxostudio.tw/category/python/tkinter/line-notify.html
https://steam.oxxostudio.tw/category/python/spider/line-notify.html
https://www.temai.com.tw/line-notify_Instrution.htm


上一篇
DAY24. Python GUI - 畫布及新增圖片
下一篇
DAY26. Python 爬蟲 - PPT爬蟲
系列文
python零之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言