2023年4月8日 星期六

使用後端程式來進行 LINE Notify 訊息推播(Python + Google Apps Script)


LINE Notify 是 LINE 的一項免費訊息推播服務,可以讓程式設計者或系統管理者用程式發送 LINE 訊息至指定的聊天室。

在上一篇 LINE Notify 權杖申請與取用 的文章中已詳細說明如何進行LINE Notify的申請與使用,但LINE Notify 無法直接透過網頁前端的方式來發送訊息,所以以下是一個簡單使用 Python 來推播訊息的例子。


編寫 Python 程式碼如下:
import requests

# LINE Notify 權杖
LINE_token = '你的權杖'

# 要推播的訊息
LINE_message = '這是用LINE Notify推播訊息測試'
message = {'message': LINE_message}

# 設定HTTP 標頭參數把LINE Notify 權杖帶入
headers = { "Authorization": "Bearer " + LINE_token }

# 以 requests 發送 POST 請求
requests.post("https://notify-api.line.me/api/notify", headers = headers, data = message)
本例使用 Thonny 來執行上述程式碼。

利用 Google Apps Script 推播訊息

除了可利用 Python 來推播 LINE Notify 訊息外,也可利用 Google Apps Script 腳本平台推播訊息。 
進入 Google 雲端硬碟,新增一個 Google Apps Script。

將未命名專案的名稱加以變更,本例變更為 LINE 推播訊息。

 將 myFunction 函數名稱改為 doPost。


撰寫程式碼如下:
function doPost() {
    UrlFetchApp.fetch('https://notify-api.line.me/api/notify', {
        'headers': {
           'Authorization': 'Bearer ' + '你的權杖',
        },
        'method': 'post',
        'payload': {
            'message':'利用 Google Apps Script 腳本平台推播訊息!'
        }
    });
}
接著按下功能列上的執行按鈕。

因為我們 Apps Script 是外部服務,所以先出現帳號登入驗證,身分驗證通過後還會有一個存取權限的視窗,這個過程等同我們同意外部服務使用特定 Google 的帳號執行當前的程式。
程式執行後會在Google Apps Script 腳本平台中顯示執行紀錄。

程式順利執行後就會收到 LINE Notify 推播的訊息。