iT邦幫忙

2023 iThome 鐵人賽

0
Software Development

跟著 OXXO 一起學 Python系列 第 66

( Day 32.1 ) Python 發送 LINE Notify 通知

  • 分享至 

  • xImage
  •  

這篇文章會使用 Python 的 Requests 函式庫,結合 LINE Notify 的 API,實作執行 Python 的程式後,發送通知訊息到個人的 LINE,甚至還可以透過 LINE Notify 發送圖片或貼圖表情。

原文參考:發送 LINE Notify 通知

本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )

什麼是 LINE Notify

LINE Notify 是 LINE 所提供的一項非常方便的服務,用戶可以透過 LINE,接收各種網站、服務或應用程式 ( GitHub、IFTTT 及 Python...等 ) 的提醒通知,與網站服務連動完成後,LINE所 提供的官方帳號「LINE Notify」將會傳送通知,不僅可與多個服務連動,也可透過 LINE 群組接收通知。

LINE Notify 網址:https://notify-bot.line.me/zh_TW/

Python 教學 - 發送 LINE Notify 訊息通知 - 什麼是 LINE Notify

申請 LINE Notify 權杖

打開 LINE Notify 的網站 ( https://notify-bot.line.me/zh_TW/ ) 後,使用自己的 LINE 帳號登入,登入後從上方個人帳號,選擇「個人頁面」。

Python 教學 - 發送 LINE Notify 訊息通知 - 個人頁面

進入個人頁面後,點選下方「發行權杖」,權杖 ( token ) 的作用在於讓「連動的服務」可以透過 LINE Notify 發送訊息通知

Python 教學 - 發送 LINE Notify 訊息通知 - 申請 LINE Notify 權杖

點選「發行權杖」後,必須要定義權杖的名稱,以及選擇這個 LINE Notify 所在的聊天群組,通常直接選擇「透過 1 對 1 聊天接收 LINE Notify 通知」。

Python 教學 - 發送 LINE Notify 訊息通知 - LINE Notify 所在的聊天群組

發行權杖後,會出現一串權杖代碼,點擊下方綠色的「複製」就可複製權杖代碼。

注意,權杖代碼只會出現一次,複製後自行找地方留存。

Python 教學 - 發送 LINE Notify 訊息通知 - 複製權杖代碼

點擊關閉,在個人頁面裡就會看見已經發行的權杖,點選後方「刪除」就能解除權杖 ( 如果不小心權杖流出導致一直收到奇怪的通知,就可以將權杖解除,重新再發行一次 )。

Python 教學 - 發送 LINE Notify 訊息通知 - 刪除權杖

當權杖發行後,在個人的 LINE 裡,就會收到「已發行個人權杖」的通知訊息 ( 解除權杖也會收到通知 )。

Python 教學 - 發送 LINE Notify 訊息通知 - 已發行個人權杖

發送 LINE Notify 訊息

有了 LINE Notify 的權杖後,就能使用 Requests 的 POST 方法發送訊息,發送時需要在 headers 設權杖 Authorization,並將訊息內容放在 data 的 message 裡,完成後執行 Python 程式,LINE 就會收到通知。

參考:Requests 函式庫Requests 傳遞參數

import requests

url = 'https://notify-api.line.me/api/notify'
token = '剛剛複製的權杖'
headers = {
    'Authorization': 'Bearer ' + token    # 設定權杖
}
data = {
    'message':'測試一下!'     # 設定要發送的訊息
}
data = requests.post(url, headers=headers, data=data)   # 使用 POST 方法

Python 教學 - 發送 LINE Notify 訊息通知

透過 LINE Notify 發送表情貼圖

在發送的 data 裡,加入 stickerPackageId ( 貼圖包類別號碼 ) 和 stickerId ( 貼圖號碼 ),就能夠發送表情貼圖。

表情貼圖清單:https://developers.line.biz/en/docs/messaging-api/sticker-list/

Python 教學 - 發送 LINE Notify 訊息通知 - 透過 LINE Notify 發送表情貼圖

下方的程式執行後,就會發送表情貼圖。

注意,LINE Notify 必須具備 message,所以不能移除 message ( 至少要是一個空字元 )。

import requests

url = 'https://notify-api.line.me/api/notify'
token = '剛剛複製的權杖'
headers = {
    'Authorization': 'Bearer ' + token
}
data = {
    'message':'測試一下!',
    'stickerPackageId':'446',
    'stickerId':'1989'
}
data = requests.post(url, headers=headers, data=data)

Python 教學 - 發送 LINE Notify 訊息通知 - 發送表情貼圖

透過 LINE Notify 傳送圖片

在發送的 data 裡,加入 imageThumbnail ( 縮圖網址 ) 和 imageFullsize ( 圖片網址 ),就能夠傳送圖片。

import requests

url = 'https://notify-api.line.me/api/notify'
token = '剛剛複製的權杖'
headers = {
    'Authorization': 'Bearer ' + token
}
data = {
    'message':'測試一下!',
    'imageThumbnail':'https://steam.oxxostudio.tw/downlaod/python/line-notify-demo.png',
    'imageFullsize':'https://steam.oxxostudio.tw/downlaod/python/line-notify-demo.png'
}
data = requests.post(url, headers=headers, data=data)

Python 教學 - 發送 LINE Notify 訊息通知 - 透過 LINE Notify 傳送圖片

小結

能夠使用 LINE Notify 傳送訊息後,就能將爬蟲爬取的資料經過 Python 處理後 ( 也可以不處理 ),再透過 LINE Notify 傳送到自己的 LINE,對於爬蟲的應用就更加廣泛。

更多教學

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我有個超過一千篇教學的 STEAM 教育學習網,有興趣可以參考下方連結呦~ ^_^


上一篇
( Day 31.2 ) Python 爬取 LINE TODAY 留言
下一篇
( Day 32.2 ) Python LINE Notify 傳送雷達回波圖
系列文
跟著 OXXO 一起學 Python101
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言