Google Sheets 串接 LINE 通知:自動化推播設定步驟與應用情境

Published on: | Last updated:

先說結論

嗯,今天要來聊的這個...很多人問,就是 Google Sheets,那個試算表,要怎麼跟 LINE 連動,就是,呃,試算表上面有什麼變化,就自動傳個訊息到 LINE。先說結論,這完全做得到,而且是免費的。你只要用一個叫做 Google Apps Script 的東西,嗯...可以把它想像成是 Google 服務專用的一個...一個小機器人程式,你叫它做事,它就做事。設定是有點繁瑣啦,但弄過一次之後就很快了。

為什麼需要這個?有哪些應用情境?

好,那在講怎麼做之前,要先想一下,為什麼要用這個功能?我自己是覺得,這可以把手動檢查的動作,變成自動提醒,超方便的。你想想看喔:

  • 新訂單通知:如果你的訂單記錄是用 Google Sheets,那每次有新的訂單進來,就可以馬上傳一個 LINE 通知給你,或是傳到公司的業務群組。
  • - 庫存水位警告:這也超實用。比方說,你在 Sheet 上面管理庫存,當某個商品的數量低於一個安全值,比如說 10 個,它就自動發 LINE 跟你說「喂,那個 A 商品該補貨了!」。
  • 每日數據回報:你可以設定每天固定一個時間,比如說早上九點,自動抓取試算表裡的幾個關鍵數字,像是昨天的營業額、網站流量,然後整理成一則訊息發到你的 LINE,就不用自己每天早上還要打開電腦看。
  • 專案進度追蹤:團隊可以用啊,例如某個任務的狀態從「進行中」被改成「已完成」,就自動通知專案經理。

簡單講,就是任何你在試算表上記錄的、而且需要你...呃...即時注意的數據變化,都可以用這個方法來做自動化。

整個自動化流程的示意圖
整個自動化流程的示意圖

怎麼做?設定步驟大拆解

好,重頭戲來了。整個過程...嗯...我把它分成三個主要步驟:第一,你要先跟 LINE 申請一個「鑰匙」;第二,你要在 Google Sheets 裡面打開那個「程式編輯器」;第三,把程式碼貼進去,然後設定「何時觸發」。聽起來很複雜,但跟著做一次就好。

步驟一:取得 LINE Notify 的權杖 (Token)

這個權杖 (Token) 就是那把鑰匙,有了它,你的程式才能打開 LINE 的門,把訊息送進去。

  1. 首先,你得去 LINE Notify 的官方網站。 Google 搜尋「LINE Notify」第一個就是了。
  2. 進去之後,用你的 LINE 帳號登入。
  3. 登入後,點右上角你的名字,然後選「個人頁面」。
  4. 往下滑,會看到一個很明顯的按鈕,叫做「發行權杖」。 點下去。
  5. 接下來,它會問你兩件事:第一,這個通知要叫什麼名字,隨便取一個你好記的,例如「我的訂單通知」。第二,你想要把通知傳到哪裡?你可以選「透過1對1聊天接收LINE Notify的通知」,這樣就只會傳給你自己。或者,你也可以選一個你所在的群組,這樣群組裡所有人都會收到通知。 如果要傳到群組,記得事後要把「LINE Notify」這個官方帳號也邀請到那個群組裡喔。
  6. 都選好之後,按下「發行」。然後!然後!最重要的一步來了!它會給你一長串亂碼,那個就是你的權杖。你一定要立刻把它複製下來,貼到一個安全的地方,因為這個畫面關掉之後,你就再也看不到這組權杖了! 真的,忘記了就只能重新申請一個。

步驟二:打開 Google Apps Script 編輯器

鑰匙拿到了,現在我們回到 Google Sheets 這邊。

  1. 打開你想要自動化的那個 Google 試算表。
  2. 點上面選單的「擴充功能」,然後選「Apps Script」。
  3. 這時候會跳出一個新的分頁,就是 Google Apps Script 的程式碼編輯器。 可能看起來有點...嗯...工程師的感覺,但別怕,我們大部分時間只是在複製貼上而已。
Google Apps Script 編輯器畫面
Google Apps Script 編輯器畫面

步驟三:貼上程式碼與設定觸發條件

好,現在就是把鑰匙跟門鎖組裝起來的時候了。

首先,把編輯器裡面原本有的那幾行程式碼...呃...都刪掉,清空它。然後貼上這段程式碼:


  function sendLineNotification(message) {
    const token = '這裡貼上你剛剛複製的LINE Notify權杖';
    
    if (token === '這裡貼上你剛剛複製的LINE Notify權杖' || !token) {
      console.log('權杖未設定,請檢查程式碼。');
      return;
    }
  
    const url = 'https://notify-api.line.me/api/notify';
    const options = {
      'method': 'post',
      'headers': {
        'Authorization': 'Bearer ' + token
      },
      'payload': {
        'message': message
      }
    };
  
    try {
      const response = UrlFetchApp.fetch(url, options);
      console.log(response.getContentText());
    } catch (e) {
      console.log('傳送失敗:' + e.toString());
    }
  }
  
  // ----- 以下是觸發用的範例,你可以根據需求修改 -----
  
  // 範例一:當試算表被「編輯」時觸發
  function onEdit(e) {
    // e.range 是被編輯的儲存格
    // e.value 是編輯後的新值
    // e.oldValue 是編輯前的舊值
    
    const range = e.range;
    const sheet = range.getSheet();
    
    // 假設我們只監控 "工作表1" 的 B 欄
    if (sheet.getName() === "工作表1" && range.getColumn() === 2) {
      const row = range.getRow();
      const product = sheet.getRange(row, 1).getValue(); // 取得 A 欄的產品名稱
      const status = e.value; // B 欄的新狀態
      
      const message = `\n【進度更新】\n產品:${product}\n狀態:${status}`;
      sendLineNotification(message);
    }
  }
  

貼上去之後,記得,把 `const token = '這裡貼上你剛剛複製的LINE Notify權杖';` 這行,換成你自己的那把「鑰匙」。

再來,就是設定「觸發條件」(Trigger)。這個超重要,它決定了程式什麼時候要跑。 Google Apps Script 有很多種觸發條件,但最常用的就兩種:

  1. 簡易觸發 (Simple Trigger): 像上面程式碼裡的 `onEdit(e)` 就是。 它的意思是「當這個試算表的任何一個儲存格被編輯時」,就自動執行這個函數。 你不用另外設定,只要你的函數名稱是 `onEdit`,Google 就會認得它。 這是最即時的。
  2. 時間驅動觸發 (Time-driven Trigger): 這個就要手動設定了。你可以在左邊的選單點那個「時鐘」圖案的「觸發條件」,然後按「新增觸發條件」。 你可以設定成「每小時」、「每天的某個時段」...等等。 這種就很適合做每日回報。

第一次執行的時候,Google 會跳出一個視窗,要求你授權這個程式執行。 你就點「審查權限」,選你自己的帳號,然後...它會跳出一個「這個應用程式未經驗證」的警告,看起來很可怕,但因為這是你自己寫的程式,所以是安全的。你點左下角的「進階」,然後「繼續前往 (不安全)」,最後允許它就對了。

情境進階:客製化你的通知訊息

剛剛那段程式碼,最強大的地方其實在 `onEdit(e)` 那個函數。 你看喔,它不只是單純地送出「有東西被改了」,而是可以抓到「是哪個儲存格被改了」、「改成什麼內容」,然後把這些資訊組合成一則有意義的訊息。

比方說,`e.range.getSheet().getName()` 可以知道是哪個工作表被改動,`e.range.getColumn()` 可以知道是第幾欄,`e.value` 就是新的值。 透過這些,你就可以寫出像「`如果` 工作表是『庫存表』,`而且` 被改動的是第 3 欄 (數量欄),`而且` 新的數值小於 10,`那就` 發出補貨通知」這樣的邏輯。

觸發方式 適合情境 優點 缺點 / 注意事項
onEdit() 簡易觸發 需要即時反應的,像是新訂單、狀態更新。 反應超快,幾乎是馬上通知。 如果你一直頻繁編輯,它就會一直傳訊息,會很吵。而且要注意,程式邏輯沒寫好可能會造成無限迴圈。
時間驅動觸發 做摘要報告用的,像是每日銷售總結、每週任務盤點。 固定時間才發,不會打擾。適合彙總型的資訊。 就...不是即時的啊。如果設定一天一次,那你可能晚上才會知道早上發生的事。
實際收到的 LINE Notify 通知
實際收到的 LINE Notify 通知

結語

嗯...大致上就是這樣。說真的,第一次設定會覺得有點卡,特別是那個授權的部分,還有程式碼要改對地方。但是,只要成功設定好一個,之後要做好幾個就很快了。把一些重複檢查的動作交給機器人,省下來的時間拿去...呃...做更重要的事,還是挺不錯的。

那你呢?如果你可以用這個功能,你會想拿來自動化你試算表裡的什麼通知?是記帳提醒、待辦事項追蹤,還是有什麼更有創意的用法?在下面留言分享看看吧!

Related to this topic:

Comments

  1. Guest 2025-06-22 Reply
    嘿,這方案太棒了!剛好我們團隊最近在找數位化管理的解決方案。能不能分享更多細節?Line 整合真的很有吸引力,尤其是自動化那塊。我們很需要這種工具。
撥打專線 LINE免費通話