Skip to content

Google Apps Script是什麼?能做的事、配額與委外時機

Posted in :

jc-seo

Google Apps Script 是 Google 提供的應用程式開發平台,用 JavaScript 撰寫,在瀏覽器的編輯器裡就能寫程式,不必安裝軟體,指令碼存在雲端硬碟、在 Google 的伺服器上執行。它能讀寫試算表、文件、表單、Gmail、日曆與雲端硬碟,在表單提交或排定時間時自動執行,也能呼叫外部 API,或部署成簡單的網頁應用程式。限制主要在配額:單次執行有時間上限,每天的觸發器總執行時間與寄信收件者人數也有額度,個人帳戶和公司的 Workspace 帳戶不同。內部小型流程很適合用它處理;要給外部客戶登入、資料量大或流程停擺會影響營收時,就該評估委外開發。

GAS 能自動化哪些工作

Google Apps Script 常簡稱 GAS,常見用途大致可分成五類:

  • 操作雲端檔案:讀寫試算表、文件、簡報、表單與雲端硬碟,例如每月複製報表範本。
  • 寄信與日曆:用 Gmail 寄通知、在日曆建立活動。
  • 擴充介面:在試算表或文件加上自訂選單、對話方塊與側欄,或寫自訂函式在儲存格使用。
  • 呼叫外部服務:用網址擷取服務送出 HTTP 請求,把資料送到其他系統的 API。
  • 網頁應用程式:部署成有網址的頁面,讓使用者填寫或查詢。

指令碼有兩種存放方式:獨立指令碼是單獨的專案;繫結指令碼從某個試算表、文件、簡報或表單建立,從該檔案的「擴充功能」開啟,不會另外出現在雲端硬碟,也無法和檔案分離,只有能編輯該檔案的人才能執行。錄製試算表巨集時,系統也會產生對應的程式。用表單加試算表串成完整流程的設定,可參考Google 自動化流程的做法與極限。

兩種觸發器:簡單型與可安裝型

比較項目 簡單型 可安裝型
建立方式 函式取保留名稱,例如 onOpen、onEdit 在專案的觸發器頁面新增,或用程式建立
需要授權的服務 不能使用,例如不能寄信 可以使用,建立時完成授權
執行時間 不能超過三十秒 適用一般的執行時間上限
可用的事件 開啟、編輯等 開啟、編輯、變更、表單提交,以及從每分鐘到每月一次的時間驅動

官方文件把觸發器稱為「觸發條件」。三個常被忽略的規則:檔案以檢視或註解模式開啟時,簡單型不會執行;程式本身的執行與 API 請求不會啟動觸發器,測試要從畫面實際操作;可安裝型一律以建立者的帳戶執行,負責人離職前要先移轉。

google apps script 限制:配額與執行時間

官方配額表中,企業流程常碰到的是下列幾項:

項目 個人帳戶 Workspace 帳戶
單次執行時間 六分鐘 六分鐘
觸發器每日總執行時間 九十分鐘 六小時
每日寄信收件者 一百位 一千五百位
網址擷取呼叫次數 每天兩萬次 每天十萬次
自訂函式執行時間 三十秒 三十秒
每位使用者同時執行數 三十個 三十個

每日配額以使用者計算,從該使用者首次請求起算二十四小時後重置。官方註明所有配額都可能隨時取消、調降或變更,不另行通知,實際數字依官方當下規定。設計時可以這樣避開上限:一次讀取整個範圍再處理,不要逐格讀寫;大量資料拆批,用時間驅動的觸發器分段執行;多人同時寫入同一份資料時,用 LockService 避免互相覆蓋。

google apps script 收費與周邊成本

搜尋 google apps script 收費的人,多半想知道寫程式要不要另外付錢。官方配額表是依帳戶類型列出不同額度,公司若需要較高的觸發器總執行時間與寄信量,應在公司的 Workspace 帳戶下建立。評估成本時,要把周邊項目一起算進去:

  • Workspace 授權:公司帳號的方案費用,依官方當下方案為準。
  • 外部 API:呼叫的付費服務,例如地圖或 AI 服務,依該服務的計費方式收費。
  • 開發與維護:委外撰寫、欄位變動後的調整、帳戶異動時的移轉。

部署成 google apps script 網頁應用程式

指令碼要成為網頁應用程式,必須包含 doGet 或 doPost 函式,並傳回 HTML 服務或內容服務的輸出物件。部署時在專案右上方按「部署」的「新增部署作業」,類型選「網頁應用程式」,填入部署設定後按「部署」。設定時要特別注意:

  • 執行身分:以「我」執行時,不論誰開啟,程式一律以擁有者的身分執行;以「存取網頁應用程式的使用者」執行時,以當下使用者的身分執行,使用者會看到授權同意畫面。
  • 存取對象:網址只分享給已開放存取的使用者,範圍越小越安全。
  • 擁有權異動:官方說明,擁有權移到共用雲端硬碟或其他網域的帳戶時,網頁應用程式會停止運作,需由新擁有者在新網域重新部署。

以擁有者身分執行又開放給大範圍使用者時,擁有者能存取的資料只剩程式邏輯在保護,對外開放前要仔細檢查。開發期間可用結尾為 /dev 的測試網址,它一律執行目前存檔的程式碼,只有具編輯權限的人能開啟。

授權畫面與未經驗證的警示

指令碼要存取帳戶資料時,使用者會先看到授權畫面,列出程式要求的權限範圍。官方說明,要求特定敏感權限範圍的應用程式需要經過 Google 驗證,否則使用者可能看到未經驗證應用程式的畫面,未驗證應用程式的使用者總數也有上限。例外是擁有者與使用者都屬於同一個 Workspace 網域或客戶的專案,不需要驗證;若以個人 Gmail 帳戶發布,所有使用者都可能看到這個畫面。

內部同事看到授權畫面可以理解,外部客戶看到警示多半會猶豫。給客戶使用的報名、查詢或預約入口,比較適合改用公司網域下的正式網站與後台。

何時該委外或改成正式系統

  • 執行時間或寄信量經常接近配額。
  • 使用者包含外部客戶或會員,需要各自登入、只看到自己的資料。
  • 程式只有一位同事看得懂、沒有文件,帳戶異動就可能停擺。
  • 要和 ERP、金流等系統穩定交換資料,並需要失敗重送與紀錄。

委外時先整理欄位、觸發器與使用情境,並約定程式碼與帳戶歸屬公司,做法比較可參考自動化流程的盤點與做法選擇。

常見問題

Google Apps Script 要會寫程式才能用嗎?

要。GAS 以 JavaScript 撰寫,雖然可以從錄製巨集開始,但要寄信、排程或串接外部系統,就需要讀懂並修改程式碼,或交給熟悉的人維護。

觸發器為什麼突然停止執行?

常見原因包括建立者帳戶被停用或失去檔案權限、超過每日配額,或程式執行時發生錯誤。先到專案的執行記錄查看錯誤訊息,再依原因修正,或由新負責人重新建立。

GAS 可以呼叫外部 API 嗎?

可以,透過網址擷取服務送出 HTTP 請求,每日呼叫次數另有配額,個人帳戶與公司帳戶不同。API 金鑰不要直接寫在程式碼裡,並限制專案的編輯權限。

個人帳戶寫的指令碼可以給公司用嗎?

技術上可以,但不建議。個人帳戶的配額較低,觸發器又以建立者帳戶執行,人員異動時流程會跟著個人帳戶走,公司流程應建立在公司帳戶下。

開發中的網頁應用程式怎麼測試?

可以使用結尾為 /dev 的測試網址,它一律執行目前存檔的程式碼,只有具編輯權限的人能開啟。確認無誤後,再把正式部署的網址分享給使用者。

本文由京采數位科技整理。我們自 2005 年起提供官網設計、系統開發與 Google SEO 服務,實際案例可見成果與案例。

想直接討論你自己的網站狀況,或需要一份初步的搜尋機會評估?

相關主題

下一步

建議先把現有的 GAS 專案列成清單:用途、建立者帳戶、觸發器與每天的執行量,找出接近配額或只有一人能維護的流程。京采的網頁設計服務可以協助評估哪些流程維持現狀、哪些改寫成客製後台或對外網站,並規劃與既有系統的 API 串接;歡迎與我們聯繫討論。