# 使用 MicroPython 測試用 LINE 推播訊息發送通知 由於 LINE Nofity 服務於 2025/3/31 終止,為了讓大家能夠繼續以台灣地區幾乎人人都有安裝的 LINE 作為通知機制,我們提供以下教學帶大家建立 LINE 聊天機器人,並以發送推播訊息替代原本的 LINE Notify 服務: - [建立 LINE Bot 聊天機器人替代 LINE Notify 服務](/HpvoZ0kLQmmVEG94u7NnBA) 本文將說明如何使用 MicroPython 程式透過上述教學文章建立的 LINE 聊天機器人發送推播訊息。 :::info 請確認您已經依照上述教學文章建立好 LINE 聊天機器人,並可以取得通道的存取令牌,也查好了想要傳送對象的 LINE user/group id。 ::: ## 使用 uline 套件 我們已經把透過 LINE 聊天機器人傳送推播訊息的功能寫成 [uline 套件](https://github.com/FlagTech/uline),你可以從這裡下載必要的檔案 [line.py](https://github.com/FlagTech/uline/archive/refs/heads/master.zip),下載後請將其中的 `line.py` 檔案上傳到 MicroPython 設備中:  在 Thonny 中開啟**檔案**窗格,從**本機**中找到下在的檔案,在 `line.py` 檔案上按滑鼠右鍵後選**上傳到 /**,完成後確認在 **MicroPython 設備**窗格中有看到 `line.py` 檔,可透過以下程式碼傳送推訊息: ```python import network import line line_access_token = '你自己的通道存取令牌' lineUserID = '傳送對象的 LINE user/group id' sta_if = network.WLAN(network.STA_IF) sta_if.active(True) sta_if.connect('無線網路名稱', '無線網路密碼') while not sta_if.isconnected(): pass print('已連上 Wi-Fi') line.line_token(line_access_token) status_code = line.line_notify( lineUserID, # 必要引數,其他都選用 '從模組來的通知', pid=446, sid=1988, img='https://www.flag.com.tw/assets/img/bookpic/F4328.jpg') print(status_code) ``` 執行成功會看到以下訊息: ``` >>> %Run -c $EDITOR_CONTENT MPY: soft reboot 已連上 Wi-Fi 200 ``` LINE 就會看到送來的訊息內容:  ## 使用 Apps Script 後端程式的 GET 方法 :::warning 這個方法對記憶體需求較大,所以並不適用於使用 ESP8266 記憶體較少的 D1 mini 開發板,主要是為了無法直接使用前一種方法的情況,一般都建議使用前述方式。 ::: 本文一開頭的教學文章所建立的聊天機器人會使用 Apps Script 設計後端程式,這個後端程式除了可以回應 LINE user/group id 外,也提供 GET 方法方便大家傳送推播訊息,使用方法如下: ```python import network import socket import urequests sta_if = network.WLAN(network.STA_IF) sta_if.active(True) sta_if.connect('FLAG-SCHOOL', '12345678') while not sta_if.isconnected(): pass print('已連上 Wi-Fi') appsScriptURL = 'Apps Script 後端程式部署後的網址' lineUserID = '傳送對象的 LINE user/group id' # 傳送訊息給指定的使用者 # 查詢字串參數: # id: LINE 使用者的識別碼(不是 LINE ID 喔) # t: 文字訊息 # pid: 貼圖的套件識別碼 # sid: 貼圖的識別碼 # img: 圖片的網址 txt = "你好啊!" pid = 446 sid = 1990 img = 'https://www.flag.com.tw/assets/img/bookpic/F4328.jpg' res = urequests.get( f'{appsScriptURL}' f'?to={lineUserID}' f'&t={txt}' f'&pid={pid}&sid={sid}' f'&img={img}') print(res.status_code) res.close() ``` 執行成功會看到以下訊息: ``` >>> %Run -c $EDITOR_CONTENT MPY: soft reboot 已連上 Wi-Fi 200 ``` LINE 也會收到如下的內容: 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up