本篇介紹如何在 Python 中使用 LINE Notify 服務,在程式中自動發送即時訊息與圖片至 LINE 聊天群組。
LINE Notify 是 LINE 的一項免費自動發送訊息 API 服務,可以讓程式設計者或系統管理者用程式發送 LINE 訊息至指定的聊天室,非常適合用來發送系統的即時告警訊息。以下是 Python 以 LINE Notify 發送即時訊息的使用方式。
Step 1
開啟 LINE Notify 網頁,以自己的 LINE 帳號與密碼登入後,在「個人頁面」中點選「發行權杖」。
Step 2
填寫權杖名稱,並選擇要發送訊息至哪一個 LINE 聊天室。這裡的權杖名稱會顯示在每一條發送訊息之前,所以可以取一個簡短又具代表性的名稱。
Step 3
將產生的權杖複製下來。
由於透過 LINE Notify 自動傳送的訊息,都會以 LINE Notify 這個特殊帳號來發送,所以必須事先將 LINE Notify 這個特殊帳號加入自己指定要發送訊息的 LINE 聊天室中。
在實際以 Python 撰寫發送程式之前,建議先以 curl
指令測試 LINE Notify 的訊息發送功能是可以正常運作的:
# 測試以 LINE Notify 傳送訊息 curl -X POST \ -H 'Authorization: Bearer 1CIwKOwt18XF8RQBDiLHgzwW1W4BaG22cQr4mA0LGLr' \ -F 'message=foobar' \ https://notify-api.line.me/api/notify
這裡的 1CIwKOwt18XF8RQBDiLHgzwW1W4BaG22cQr4mA0LGLr
就是剛剛產生的權杖,請替換為自己的權杖。
事實上 LINE Notify 傳送訊息就只是送出一個 HTTP 的 POST 請求,以下是在 Python 中以 LINE Notify 發送即時訊息的範例:
import requests # LINE Notify 權杖 token = '1CIwKOwt18XF8RQBDiLHgzwW1W4BaG22cQr4mA0LGLr' # 要發送的訊息 message = '這是用 Python 發送的訊息' # HTTP 標頭參數與資料 headers = { "Authorization": "Bearer " + token } data = { 'message': message } # 以 requests 發送 POST 請求 requests.post("https://notify-api.line.me/api/notify", headers = headers, data = data)
執行這段 Python 程式指令稿之後,就可以在 LINE 聊天室看到程式送出的即時訊息了。
LINE Notify 也可以用來發送圖片,以下是以 curl
指令透過 LINE Notify 發送訊息與圖片的範例:
# 測試以 LINE Notify 傳送訊息與圖片 curl -X POST \ -H 'Authorization: Bearer 1CIwKOwt18XF8RQBDiLHgzwW1W4BaG22cQr4mA0LGLr' \ -F 'message="這是含有圖片的訊息"' \ -F 'imageFile=@./my_image.jpg' \ https://notify-api.line.me/api/notify
以下是用 Python 指令稿發送訊息與圖片的範例:
import requests # LINE Notify 權杖 token = '1CIwKOwt18XF8RQBDiLHgzwW1W4BaG22cQr4mA0LGLr' # 要發送的訊息 message = '這是用 Python 發送的訊息與圖片' # HTTP 標頭參數與資料 headers = { "Authorization": "Bearer " + token } data = { 'message': message } # 要傳送的圖片檔案 image = open('my_image.jpg', 'rb') files = { 'imageFile': image } # 以 requests 發送 POST 請求 requests.post("https://notify-api.line.me/api/notify", headers = headers, data = data, files = files)