Python

Python 以 LINE Notify 自動傳送即時訊息、圖片教學與範例

本篇介紹如何在 Python 中使用 LINE Notify 服務,在程式中自動發送即時訊息與圖片至 LINE 聊天群組。

LINE Notify 是 LINE 的一項免費自動發送訊息 API 服務,可以讓程式設計者或系統管理者用程式發送 LINE 訊息至指定的聊天室,非常適合用來發送系統的即時告警訊息。以下是 Python 以 LINE Notify 發送即時訊息的使用方式。

取得 LINE Notify 權杖(Token)

Step 1
開啟 LINE Notify 網頁,以自己的 LINE 帳號與密碼登入後,在「個人頁面」中點選「發行權杖」。

點選「發行權杖」

Step 2
填寫權杖名稱,並選擇要發送訊息至哪一個 LINE 聊天室。這裡的權杖名稱會顯示在每一條發送訊息之前,所以可以取一個簡短又具代表性的名稱。

填寫權杖名稱,選擇 LINE 聊天室

Step 3
將產生的權杖複製下來。

複製權杖

加入 LINE Notify 帳號

由於透過 LINE Notify 自動傳送的訊息,都會以 LINE Notify 這個特殊帳號來發送,所以必須事先將 LINE Notify 這個特殊帳號加入自己指定要發送訊息的 LINE 聊天室中。

將 LINE Notify 加入聊天室

測試 LINE Notify 傳送訊息

在實際以 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 發送訊息

Python

事實上 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 聊天室看到程式送出的即時訊息了。

Python 以 LINE Notify 發送訊息

發送圖片

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
LINE 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)
Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago