📲 串接 Line Notify:打造即時監控通知機器人
在上一章,我們成功讓 Google Sheet 每天早上自己去抓美金匯率了。 但如果匯率突然暴跌,身為投資人的你可能不會每天打開試算表檢查。如果它能主動傳 LINE 訊息跟你說:「老闆,今天美金暴跌了,快上車!」那該有多好?
本章我們將帶你申請終身免費的 Line Notify,並教你如何在 GAS 中寫一個函數,隨時隨地把警報推播到你的手機或工作群組中!
1. 什麼是 Line Notify?
如果你想要發 LINE 給別人,有兩種方法:
- LINE 官方帳號 (LINE Official Account / Bot):功能強大,可以做圖文選單、可以雙向聊天。缺點是:**要收費!**每個月超過 200 則訊息就要付高昂的月租費。
- LINE Notify:只能做「單向廣播」。你可以把自己或群組綁定,程式碼只能「發送文字或圖片」給你。優點是:完全免費!沒有發送上限限制!
對於系統監控、內部報表通知、或是個人投資機器人來說,LINE Notify 絕對是首選。
2. 申請 LINE Notify 權杖 (Token)
要讓我們的 GAS 程式有權限發訊息到你的 LINE,我們需要去申請一把鑰匙 (Token)。
- 用電腦瀏覽器打開 LINE Notify 官方網站 並登入你的 LINE 帳號。
- 點擊右上角你的名字 -> 點選 「個人頁面」。
- 滑到最下面,找到「發行權杖 (Generate token)」的按鈕點下去。
- 填寫權杖名稱:例如
[財務機器人](這會出現在每則訊息的開頭)。 - 選擇接收通知的聊天室:
- 選擇「透過 1 對 1 聊天接收 LINE Notify 的通知」(只有你自己看得見)。
- 或選擇你跟團隊的「某個群組」(群組裡的人都看得見)。
- 點擊「發行」。
- 畫面上會出現一長串亂碼(例如:
abc123DEF456ghi789...)。 🚨 請立刻把它複製並儲存到記事本裡!只要關掉這個視窗,這輩子就再也看不到這把 Token 了!
⚠️ 如果你剛才是選擇發送到「群組」,請記得拿起手機,把你想要發送的那個 LINE 群組打開,然後把官方帳號
LINE Notify邀請加入該群組!它才有辦法在裡面發言!
3. 在 GAS 中撰寫 LINE Notify 發送函數
回到我們上一章的 GAS 編輯器 (Code.gs)。
我們來寫一個共用的函數,只要傳入「你想說的話」,它就會幫你發射到 LINE!
// 發送 LINE Notify 的共用函數
function sendLineNotify(message) {
// 把剛剛複製的 Token 貼在這裡
var token = "YOUR_LINE_NOTIFY_TOKEN_HERE";
// Line Notify 官方規定的 API 網址
var url = "https://notify-api.line.me/api/notify";
// Line Notify 規定的傳輸格式
var options = {
"method": "post",
"headers": {
"Authorization": "Bearer " + token
},
// 要發送的內容放在 payload 裡面,key 必須是 'message'
"payload": {
"message": message
}
};
try {
// 發射!
var response = UrlFetchApp.fetch(url, options);
Logger.log("LINE 發送成功:" + response.getContentText());
} catch (error) {
Logger.log("LINE 發送失敗:" + error.toString());
}
}
// 我們來寫個測試函數看看手機會不會響!
function testLine() {
sendLineNotify("\n老闆早安!這是我從 Google Sheet 發出的測試訊息!🚀");
}
💡 實戰小細節:你會發現我在測試訊息的最前面加了 \n。這是因為 LINE Notify 的預設格式是 [權杖名稱] 你的訊息。如果不加換行符號,看起來會很擠。加上 \n 會讓你的內文換到下一行,排版更美觀!
現在,選擇 testLine 函數並點擊「執行」。你的手機應該瞬間就會「叮咚」一聲,收到機器人的問候了!
4. 結合上一章:打造「低點買進警報器」
現在我們把上一章的「匯率爬蟲」與這章的「LINE 發送器」結合在一起,寫一個具有商業邏輯的自動警報器。
修改我們上一章的爬蟲程式碼:
function fetchDailyExchangeRate() {
var apiUrl = "https://api.exchangerate-api.com/v4/latest/USD";
try {
var response = UrlFetchApp.fetch(apiUrl);
var data = JSON.parse(response.getContentText());
var usdToTwd = data.rates.TWD;
if (!usdToTwd) return;
// 寫入試算表
var today = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy/MM/dd");
appendToSheet(today, usdToTwd);
// 🔔 警報邏輯:如果美金匯率低於 31,就發布「買進警報」給老闆!
if (usdToTwd < 31.0) {
var msg = "\n🚨 【美金低點警報】🚨\n" +
"目前美金對台幣匯率已跌破 31 關卡!\n" +
"當前匯率為:" + usdToTwd + "\n" +
"建議老闆可以準備分批買進了!💵";
sendLineNotify(msg);
} else {
// 匯率平常時,也可以發個簡單的日報
sendLineNotify("\n📊 今日財務日報 \n美金對台幣匯率:" + usdToTwd);
}
} catch (error) {
// 系統掛掉也要發 LINE 通知工程師 (也就是你本人)
sendLineNotify("\n❌ 爬蟲系統發生異常,請盡速檢查程式碼!\n錯誤內容:" + error.toString());
}
}
5. 更多商業應用情境
學會了 UrlFetchApp 與 LINE Notify 的組合技,你等於掌握了一把萬能的瑞士刀。
除了財經機器人,你還可以實作無數種商業自動化:
- 表單監控系統:當有客戶填寫了你的 Google Form 預約表單,設定觸發器「當表單提交時」,立刻發 LINE 到公司客服群組:「🔔 有新客戶預約了,請盡速聯繫!」
- 對帳機器人:當會計把款項輸入 Google Sheet,且標記為「已入帳」時,自動發 LINE 通知業務員出貨。
- 官網死線監控:寫一支程式每小時去打一次你公司的官網首頁,如果回傳不是
200 OK(網站掛了),立刻狂發 LINE 叫工程師起床修 Bug。
這一切的強大功能,在 Google Apps Script 中都是 完全免費、不需要租伺服器、也不需要買雲端資料庫 的!只要掌握了這套自動化思維,你一個人就能抵得上一整個團隊的效率!