📲 串接 Line Notify:打造即時監控通知機器人

在上一章,我們成功讓 Google Sheet 每天早上自己去抓美金匯率了。 但如果匯率突然暴跌,身為投資人的你可能不會每天打開試算表檢查。如果它能主動傳 LINE 訊息跟你說:「老闆,今天美金暴跌了,快上車!」那該有多好?

本章我們將帶你申請終身免費的 Line Notify,並教你如何在 GAS 中寫一個函數,隨時隨地把警報推播到你的手機或工作群組中!


1. 什麼是 Line Notify?

如果你想要發 LINE 給別人,有兩種方法:

  1. LINE 官方帳號 (LINE Official Account / Bot):功能強大,可以做圖文選單、可以雙向聊天。缺點是:**要收費!**每個月超過 200 則訊息就要付高昂的月租費。
  2. LINE Notify:只能做「單向廣播」。你可以把自己或群組綁定,程式碼只能「發送文字或圖片」給你。優點是:完全免費!沒有發送上限限制!

對於系統監控、內部報表通知、或是個人投資機器人來說,LINE Notify 絕對是首選。


2. 申請 LINE Notify 權杖 (Token)

要讓我們的 GAS 程式有權限發訊息到你的 LINE,我們需要去申請一把鑰匙 (Token)。

  1. 用電腦瀏覽器打開 LINE Notify 官方網站 並登入你的 LINE 帳號。
  2. 點擊右上角你的名字 -> 點選 「個人頁面」
  3. 滑到最下面,找到「發行權杖 (Generate token)」的按鈕點下去。
  4. 填寫權杖名稱:例如 [財務機器人] (這會出現在每則訊息的開頭)。
  5. 選擇接收通知的聊天室
    • 選擇「透過 1 對 1 聊天接收 LINE Notify 的通知」(只有你自己看得見)。
    • 或選擇你跟團隊的「某個群組」(群組裡的人都看得見)。
  6. 點擊「發行」。
  7. 畫面上會出現一長串亂碼(例如: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 的組合技,你等於掌握了一把萬能的瑞士刀。 除了財經機器人,你還可以實作無數種商業自動化:

  1. 表單監控系統:當有客戶填寫了你的 Google Form 預約表單,設定觸發器「當表單提交時」,立刻發 LINE 到公司客服群組:「🔔 有新客戶預約了,請盡速聯繫!」
  2. 對帳機器人:當會計把款項輸入 Google Sheet,且標記為「已入帳」時,自動發 LINE 通知業務員出貨。
  3. 官網死線監控:寫一支程式每小時去打一次你公司的官網首頁,如果回傳不是 200 OK (網站掛了),立刻狂發 LINE 叫工程師起床修 Bug。

這一切的強大功能,在 Google Apps Script 中都是 完全免費、不需要租伺服器、也不需要買雲端資料庫 的!只要掌握了這套自動化思維,你一個人就能抵得上一整個團隊的效率!

解鎖完整教學內容

本章為付費內容。加入專案即可解鎖超過 5000 字的深度解析,包含 10 個以上神級 Prompt 與真實 Source Code 範例!