LINE 存檔小幫手 — 設定精靈

一個人也能架好・完全離線運作,不上傳任何資料

🗂️ 這是什麼・要花多久・要準備什麼

把 LINE 裡別人傳給你的檔案(保單、照片、影片…),自動存一份到你自己的 Google Drive,永久保留,不會過期就抓不到。整套系統是你自己的 LINE 官方帳號 + 你自己的 Google Drive + 你自己的一小段程式,完全免費,不用委託任何人維護。

要花多久大約 40~60 分鐘
要準備什麼一個 Google 帳號+一台電腦瀏覽器。程式碼這個網頁會直接給你
要用手機嗎不一定要,有免用手機的做法
總共幾步六個分頁,照順序做完,最後別忘了去⑥收尾
📋 程式碼不用另外去找,也不用別人傳檔案給你。做到③分頁的時候,畫面上會直接出現 「📋 複製 Code.gs 全文」和「📋 複製 appsscript.json 全文」兩個按鈕,按一下就複製好了, 直接貼進 Google Apps Script 編輯器即可。旁邊還有「另存檔案」「在新分頁開啟」兩個備援方式。

你唯一需要的就是這個網頁的網址——把它加到書籤,中途關掉隨時可以回來接著做。
🔒 資料去向一句話版:這個網頁沒有伺服器、沒有資料庫,提供這個網頁的人看不到也拿不到你的任何資料; 你填的內容只存在這台電腦的瀏覽器裡,備份下來的檔案在你自己的 Google Drive。詳細說明、以及「怎麼自己驗證」在②分頁展開看。

建議照 ①→②→③→④→⑤→⑥ 的順序、一次做完不要中斷。中途關掉分頁也沒關係,你填過的內容都留在這台電腦的瀏覽器裡,回來會自動接著上次的進度。全部完成後,記得到⑥分頁按一鍵清除,把這台電腦上的暫存資料清乾淨。

整體進度:已完成 0 / 10

🧭 ① 準備

開始之前,先把 5 件事準備好。每一步都有「怎麼做?」可以展開看詳細步驟,不趕時間慢慢做即可。

用來存放以後所有從 LINE 備份下來的檔案。
怎麼做?
  1. 點上面「開啟 Google Drive」連結(會開新分頁)
  2. 左上角按「+ 新增」→「新資料夾」
  3. 取個好記的名字,例如「LINE存檔」
  4. 建立後雙擊打開這個資料夾,準備進行下一步
程式要靠這串 ID 知道檔案要存去哪裡。
怎麼做?
  1. 確認你已經打開剛剛建立的資料夾
  2. 看瀏覽器最上面的網址列,網址長得像:
    https://drive.google.com/drive/folders/1AbCdEfGhIjKlMnOpQrStUvWxYz
  3. 把「整段網址」複製起來(Ctrl+C),貼到下面的輸入框,會自動幫你抓出中間那串 ID
這是負責在 LINE 裡跟大家互動的「身分」。
怎麼做?
  1. 點上面「LINE Official Account Manager」連結
  2. 用你的 LINE 帳號或 Email 登入
  3. 按「建立帳號」,依畫面填寫:帳號名稱(例如「XX保經檔案小幫手」)、所在地區、行業別
  4. 完成後會自動進入該帳號的後台管理畫面,你會看到左側一排選單、上方是這個帳號的名稱與大頭貼
讓官方帳號可以用程式控制(收發訊息、下載檔案)。
怎麼做?

⚠️ 這一步要在「LINE Official Account Manager」做,不是在 Developers Console。 在 OA Manager 建立的官方帳號,不會自動出現在 Developers Console;要先在這裡啟用,它才會冒出來。 如果你現在打開 Developers Console,看到的是一片空白、或寫著「Provider not found」,那是正常的,不代表你哪裡做錯了,只是還沒做這一步而已,往下看。

  1. 回到 LINE Official Account Manager(剛剛建好帳號的那個後台),確認上方選的是你要用的帳號
  2. 點右上角的 ⚙️ 設定
  3. 左側選單找到並點 Messaging API
  4. 「啟用 Messaging API」 按鈕
  5. 若是第一次使用開發者功能,會要你填姓名與 Email 做開發者註冊,填完繼續
  6. 接著要選擇或建立 Provider(服務提供者)。畫面上會列出你名下已有的 Provider(如果有的話),或給你建立一個新的,名稱填自己的名字或公司名皆可(例如「王小明」或「◯◯保經」)
    ⚠️ Provider 一旦指派給這個帳號就無法更改或解除,取名建議通用一點,之後如果還想開別的 LINE 機器人可以共用同一個。

    🚫 絕對不要因為 Developers Console 是空的,就跑去按「Create a new provider」自己在 Console 那邊建一個 Messaging API channel。那樣做會憑空再開一個全新的官方帳號,跟你剛剛在 OA Manager 建好的那個完全無關,等於白做一次、還多一個用不到的帳號。正確做法永遠是「先在 OA Manager 啟用,Provider 才會自動在 Console 冒出來」。
  7. 啟用成功後,頁面會出現 Channel IDChannel secret,代表完成(這兩個本程式用不到,不用複製)
  8. 此時再打開 LINE Developers Console,就會看到剛剛的 Provider 和底下的 Channel 了——這時候才是正常會看到東西的時間點
程式要靠這組長長的密碼字串,才能代表官方帳號發訊息、抓檔案。
怎麼做?
  1. 打開 LINE Developers Console(上面的連結),用同一組帳號登入
  2. 左側點你剛建立的 Provider → 點底下的 Channel(名稱就是你的官方帳號名)
  3. 上方分頁切到 Messaging API,往最下面捲
  4. 找到「Channel access token (long-lived)」欄位
  5. 按「Issue」(發行)按鈕,會產生一長串英數字
  6. 整串複製起來,稍後貼到②分頁的表單。這串請勿外流給任何人,等同帳號密碼
ℹ️ 每個群組/好友第一次傳檔案時會自動在根資料夾底下建立子資料夾,之後永遠存在同一個地方,就算群組改名或你自己把資料夾改名都不會跑掉。不需要事先手動建立這些子資料夾,讓程式自動處理即可。
✅ 五步都準備好之後,切到上面「② 產生程式碼」分頁繼續。

⚙️ ② 產生程式碼

填好下面的表單,右下方會即時產生你專屬的 CONFIG 設定區塊,等一下貼到 GAS 的 Code.gs 最上面就好。

🔒
隱私聲明:資料只留在你的瀏覽器,我們不經手任何資料
  • 這個網頁沒有後端伺服器、沒有資料庫,提供這個網頁的人看不到、也拿不到你的任何資料。
  • 你填的內容只寫在這台電腦的瀏覽器裡(這是瀏覽器內建的暫存功能,你不用另外安裝任何東西),關掉分頁不會消失,方便你中途接續;但只要按「一鍵清除」就會完全消失,清除瀏覽器資料也會一併消失。
  • 備份下來的檔案存在你自己的 Google Drive,不經過任何第三方。
  • 這個頁面唯一會發出的網路請求,是③分頁按複製按鈕時「向這個網站讀取程式碼原始檔給你複製」,是唯讀的,不會送出任何你填的資料。

⚠️ 若是在公司公用電腦、跟同事共用的瀏覽器帳號上使用這個頁面,你填的 token 會以「沒有加密的原文」留在這台電腦的瀏覽器裡(等同帳號密碼),使用同一個瀏覽器設定檔的其他人理論上讀得到。全部完成後,請務必到「⑥ 完成收尾」分頁按「一鍵清除」清掉本機記錄。
🔍 不用相信我,你可以自己驗證
  1. 按鍵盤 F12(或在頁面上按右鍵 →「檢查」),開啟瀏覽器內建的開發者工具
  2. 切到上方的 Network(網路)分頁
  3. Ctrl+R 重新整理這一頁,然後照平常一樣操作:填表單、切分頁、按各種複製按鈕
  4. 看 Network 清單裡跑出來的每一筆請求

看到什麼代表正常:清單裡只會有「載入這個網頁本身」的請求(HTML/CSS/圖示這類)。 到③分頁按下「複製 Code.gs 全文」或「複製 appsscript.json 全文」時,會多出一筆讀取 Code.gsappsscript.json 的請求——這筆是 GET(讀取),不是 POST(送出),代表只是「把程式碼原始檔拿回來給你複製」,不是把任何資料送出去。 除此之外,不管你在表單裡打什麼字、勾選什麼、切到哪個分頁,都不會多出任何新的網路請求。 如果哪天看到清單裡冒出一筆你認不出的網址、而且是把資料送出去的(POST),那才需要懷疑——目前這個頁面不會發生這種情況。

⚠️ 這台電腦上偵測到先前填過的設定資料。 下面表單已經自動帶入這份殘留資料(包含 Channel access token)。
如果不是你本人剛剛填的,請先按下面「清除全部暫存資料」再開始,避免把自己的設定跟別人的舊資料混在一起。

🔑 必填資訊

預設遮住顯示,避免旁人看到螢幕時外流。
可以回到①分頁用網址自動抓取,再按「帶入②表單」;也可以直接把整段 Google Drive 網址貼在這裡,會自動幫你截出 ID。
因為 GAS 讀不到 LINE 的官方簽章,靠這組密鑰擋掉亂打 webhook 的流量。之後 Webhook 網址會自動帶上 ?k= 這串。

📂 資料夾分層

💾 要備份哪些類型

💬 回覆設定

💡 什麼時候該開?如果這個 bot 只有你自己一對一在用,建議保持關閉——不然你傳了檔案卻完全沒收到任何回覆,會誤以為系統壞了,其實只是「安靜模式」讓它成功時不出聲。只有當 bot 被拉進「還有其他同事也在」的群組、你不想每傳一個檔案就洗版一次,才建議打開。

如果這個 bot 會待在「有其他同事」的群組裡,群組裡的確認訊息(含檔名、Drive 連結)大家都看得到。填入你自己的 userId 後,所有回覆(含指令回覆)都會改成私訊給你,群組裡完全靜音。userId 的取得方法請見⑤分頁「只給自己用」。一對一自己用的情境可以留空。
🔧 進階設定(一般不用改,維持預設就好)
⚠️ 順序不能反:一定要先把①~④都跑通、確認能正常收到檔案之後,再回來填這個欄位上鎖。太早填、填錯,可能連你自己都被擋在外面。取得自己 sourceId 的完整教學在⑤分頁「只給自己用」,那裡有免用手機的方法。
⚠️ overwrite 有風險:只要有人傳一個「跟先前檔案完全同名」的新檔案,Drive 裡所有同名的舊檔就會被直接送進垃圾桶、換成新檔案,而且 LINE 裡看到的成功回覆訊息跟平常一模一樣,不會特別提醒你舊檔被換掉了。任何能對這個對話傳檔案的人都能觸發(尤其 ALLOWLIST 留空時,等於任何加好友/在群組裡的人都可以)。雖然 Drive 垃圾桶通常還能救回一段時間,但若這個對話成員不是完全可信,建議改選 rename(預設)或 skip
GAS 下載檔案硬上限約 50MB,建議不要超過 45~49,留一點緩衝。

📄 產生的 CONFIG 設定區塊

等一下把整段複製,貼到 GAS 編輯器裡 Code.gs 檔案最上方,取代原本空白的 CONFIG。

CONFIG(會隨表單即時更新) Code.gs
想中途重新開始可以按這個。全部完成後的正式收尾清除,建議到「⑥ 完成收尾」分頁做。

🚀 ③ 部署

把程式碼放到 Google Apps Script(GAS)上跑起來,最後拿到一個網址,等一下④分頁要用。

1
開新專案
前往 script.google.com/home → 按「新增專案」。你會看到一個標題「無標題項目」的空白程式編輯畫面。
2
幫專案命名
左上角把「無標題項目」改成「LINE存檔小幫手」,方便以後好找。
3
貼上 Code.gs
把編輯器裡預設的 function myFunction() {} 全部刪掉(Ctrl+A 再刪), 然後按下面的按鈕取得程式碼、整段貼進去。
📥 另存檔案 👁️ 在新分頁開啟
4
開啟並貼上 appsscript.json
左側點「專案設定」(齒輪圖示)→ 勾選「在編輯器中顯示『appsscript.json』資訊清單檔案」→ 回到左側「編輯器」分頁,會多出一個 appsscript.json,點開後把內容整個換成下面這份。
📥 另存檔案
5
貼上②產生的 CONFIG
回到 Code.gs,把最上方 const CONFIG = { ... }; 整段換成②分頁複製的內容。如果你之前已經貼過一次舊版,記得整段取代,不要留下混雜新舊內容的半套設定。

💾 三個檔案(Code.gs、appsscript.json、CONFIG)都貼完之後,按一次 Ctrl+S(或點左上角雲朵圖示)存檔,確認分頁標題旁邊的小圓點消失,代表存檔成功,再繼續下一步執行 setupCheck。
6
執行 setupCheck 完成授權
上方函式下拉選單選 setupCheck → 按執行(▶)。第一次會跳出「需要授權」的視窗:
  1. 選你的 Google 帳號
  2. 如果出現一個標題寫著「Google 尚未驗證這個應用程式」的畫面,這是正常的(因為這是你自己的私人程式,沒有送去給 Google 審核,本來就不會有「已驗證」標章)。點左下角的「進階」,再點「前往『LINE存檔小幫手』(不安全)」——這裡的「不安全」指的只是「未經 Google 審核」,不代表程式本身有問題,因為程式碼是你自己貼上去的,你看得到裡面在做什麼
  3. 接下來會看到一頁要你「允許」的權限清單,通常會列出 4 項,請全部勾選、全部允許,理由如下:
📁
查看、編輯、建立及刪除你在 Google 雲端硬碟中的所有檔案必須全選這是核心功能,程式要靠它把檔案存進資料夾。範圍看起來很大(寫著「所有檔案」),是因為 Google Drive 的建檔功能只有「全部」跟「只能碰程式自己建立的檔案」兩種選項可以選;你的備份資料夾是你自己手動建立的,不是程式建的,若選窄的那種,程式反而會打不開你自己建的資料夾,所以只能選這個。
📊
查看、編輯、建立及刪除你的 Google 試算表建議全選就算你現在不打算用「記錄用試算表(LOG_SHEET_ID)」這個選填功能,也建議先勾選。因為授權範圍是第一次執行時就固定下來的,現在不勾,之後想開這個功能就要整個重新走一次授權流程。
🌐
連線至外部服務必須全選程式要靠這個權限連到 LINE 的伺服器,把你收到的檔案抓下來。
⚙️
將這個應用程式設為在你未受監控時執行必須全選這是整套系統能「自動運作」的本體——沒有這個權限,LINE 傳訊息進來時程式沒辦法在背景自己醒過來處理。setupCheck() 印出 Webhook 網址,也是靠這個權限才能執行。
跑完後看下方「執行記錄」,確認每一項都是 ✅。
7
部署為網頁應用程式
右上角「部署」→「新增部署作業」→ 齒輪圖示選「網頁應用程式」→ 執行身分選「我」誰可以存取選「所有人」(要選到含「甚至匿名使用者」的那個選項,不要選到需要 Google 登入的版本) → 按「部署」→ 可能會再跳出一次授權視窗,比照第 6 步操作 → 完成後複製「網頁應用程式」網址(結尾是 /exec)。
⚠️ 從現在起,絕對不要再按「新增部署作業」。之後如果要修改程式碼(例如改 CONFIG、上鎖白名單),一律是:右上角「部署」→「管理部署作業」→ 找到剛剛那個部署 → 按✏️ 編輯(鉛筆圖示)→ 版本選「建立新版本」→ 部署。

原因:每按一次「新增部署作業」都會產生一個全新的網址,但你已經把舊網址貼給 LINE 了——LINE 還在打舊網址,新網址跟舊網址是兩個完全獨立的東西,改的是新的、LINE 打的是舊的,等於改了等於沒改。而且專案裡如果同時存在「未命名」跟你正式在用的部署,很容易改錯邊。想確認自己有沒有改對,可以在「管理部署作業」列表裡比對部署開頭那串 ID,跟你貼給 LINE 的網址裡 /s/ 後面那段是不是一致。

🔗 Webhook URL 組裝器

貼上第 7 步複製的 /exec 網址,自動幫你接上 ?k= 密鑰。這個網址等一下要在④分頁貼到 LINE。

✅ 完整 Webhook 網址(等一下④分頁要貼到 LINE Developers Console)

✅ 部署完成自我檢查

如果有 ❌,先照執行記錄裡的指引修正,不要跳過。
上面組好完整網址(含 ?k=)後,切到④分頁繼續。
➡️ 網址組好之後,切到上面「④ 接線與驗收」分頁,這是整套流程最容易卡住的地方,請耐心照著做。

🔌 ④ 接線與驗收

把網址交給 LINE、關掉會擋住你的內建設定,最後用「實際傳一個檔案」來確認真的成功了。

🚨先看這個:按「Verify」一定會失敗,這是正常的,不要卡在這裡

等一下你會在 LINE Developers Console 把網址貼進「Webhook URL」欄位,旁邊有個「Verify」按鈕。不管你設定得多正確,這個按鈕永遠不會顯示成功,你會看到下面兩種錯誤訊息其中一種:

The webhook returned an HTTP status code other than 200.(302 Found)
— 或 —
A timeout occurred when sending a webhook event object

為什麼會這樣:Google Apps Script 這個平台,對所有 POST 請求一律回傳 302 轉址,這是 GAS 的天性,寫程式的人完全改不掉。LINE 的「Verify」功能不會跟著轉址走,看到 302 就直接判定失敗;有時候則是 GAS 剛好在「冷啟動」(沒人用一陣子後第一次被叫醒,要多花幾秒才會有反應),LINE 等不到 2 秒內的回應,就顯示逾時。

但這完全不影響實際運作。GAS 是「把你的程式從頭到尾真的跑完」之後才回那個 302 的——也就是說,等 LINE 看到 302 的當下,檔案其實早就已經存進你的 Google Drive 了。

今天實際用 curl 直接對這種 /exec 網址發一個 POST 請求做測試:回應是 302,轉址的目標網址是 script.googleusercontent.com/macros/echo(這是程式執行完的輸出結果,不是登入頁面),整個過程只花了 1.33 秒。(小提醒:如果權限設定真的有問題,轉址目標會變成 accounts.google.com 的登入頁,跟正常情況轉址到 echo 看起來不一樣,可以用這點分辨是不是真的出錯了。)

✅ 結論:看到 Verify 顯示失敗,直接跳過、不要重試、不要懷疑自己設定錯了。用下面「怎麼確認真的成功了」的方法(實際傳一個檔案)來驗證才是對的做法。
1
把網址貼到 LINE Developers Console
回到你的 Channel(跟①第5步取 token 是同一頁)→「Messaging API」分頁 → 找到「Webhook URL」欄位 → 貼上③分頁組好的完整網址(含 ?k=)→ 按「Update」存檔。
2
按 Verify(會失敗,跳過就好)
看到上面說的錯誤訊息是正常的,不用理它,繼續下一步。
3
打開「Use webhook」開關
這個開關才是真正決定 bot 有沒有在運作的關鍵,跟上面 Verify 的結果完全無關,一定要記得打開(很多人因為 Verify 顯示失敗,就不敢打開這個開關,其實應該要打開)。

🔕 關閉自動回應訊息 —— 這一步最容易漏掉,請獨立看一次

如果你設定完之後「傳檔案完全沒反應」,九成都是卡在這裡,不是網址或 token 的問題。

🔎 怎麼確認自己中招了:打開跟這個官方帳號的對話,如果聊天室最上方顯示一行「此官方帳號正在自動回覆訊息」,就是這個問題。這代表 LINE 內建的「自動回應訊息」功能還開著——它會自己回一句「感謝您的訊息!很抱歉,本帳號無法個別回覆用戶的訊息…」,而且根本不會把你傳的檔案轉給我們的程式(webhook),所以程式那邊完全不知道你傳過東西,當然也不會有任何備份、任何回覆。

1
前往回應設定
回到 LINE Official Account Manager → 右上角 ⚙️ 設定 → 左側選單找到並點 回應設定
2
依照下面四項逐一設定
  • 自動回應訊息關閉(這是元兇,一定要關)
  • Webhook開啟(跟前面③分頁的 Use webhook 是不同介面的同一件事,這裡也要確認是開的)
  • 聊天關閉(這是「真人客服手動聊天」模式,會跟程式自動回覆互相干擾)
  • 加入好友的歡迎訊息關閉(避免多出一則跟程式無關的罐頭訊息)

✅ 怎麼確認真的成功了

1
傳一個檔案測試
用手機 LINE 私訊這個官方帳號(自己測試最快),傳一張圖片或一個 PDF 檔案過去。
2
看有沒有回「✅ 已收到檔案」
正常幾秒內(GAS 剛醒來的話可能要 5~10 秒)會收到類似「✅ 已收到檔案:IMG_20260805_123456_ab12cd.jpg」的回覆訊息。(如果你在②分頁把「安靜模式」打開了,成功時本來就不會回覆,這種情況直接看下一步去 Drive 確認即可。)
3
去 Google Drive 確認
打開①分頁建立的那個資料夾,應該會多一個子資料夾(依你的顯示名稱命名),點進去能看到剛剛傳的檔案。看得到就代表整套系統真的成功了。

🩺 傳了沒反應?分流排查表

照下面表格從上到下比對你看到的狀況。

你看到的狀況最可能的原因怎麼解
聊天室最上方顯示「正在自動回覆訊息」自動回應訊息還開著,訊息根本沒轉給程式照上面「關閉自動回應訊息」整段重做一次
完全沒反應,也沒有任何自動回覆提示「Use webhook」開關沒打開,或程式碼改完忘記部署新版本回④第3步確認開關;回③檢查是否已按過「建立新版本」部署
之前正常用,某天開始突然沒反應改過 CONFIG 卻改錯部署(改到「未命名」而不是 LINE 實際在用的那個),或 token 被重新簽發失效回③比對部署 ID 是否與貼給 LINE 的網址一致;回①第5步重新取得 token
收到「⚠️ 檔案備份失敗」的訊息訊息裡的「原因」已經寫清楚了,常見是 ROOT_FOLDER_ID 填錯或 Drive 容量滿照訊息裡的原因處理,回②確認資料夾 ID 是否正確
私訊有反應,但拉進群組後沒反應bot 預設不能被拉進群組,這個開關在另一個獨立介面LINE Developers Console →「Messaging API」分頁 → 打開「Allow bot to join group chats」,再把 bot 重新邀請進群組一次
「Verify」按鈕顯示失敗這是 GAS 平台的正常現象,不是你的錯忽略它,改用「傳一個檔案」驗證(見上方巨大警示)

✅ 接線與驗收自我檢查

聊天室頂端不再顯示「正在自動回覆訊息」。
這是唯一真正算數的驗收方式,Verify 顯示失敗不算數。
🎉 兩項都打勾之後,代表整套系統已經在運作了。要不要限制「只給自己用」是選填功能,切到「⑤ 上鎖與疑難排解」分頁繼續。

🔒 ⑤ 上鎖與疑難排解

④分頁驗收成功、確定系統能正常運作之後,才建議做這一步;接著是把 1~9 個常見狀況整理成問答,找不到答案時翻這裡。

🔐 只給自己用(白名單)

LINE 官方帳號預設任何人只要搜到你的 @ID 就能加好友,加了之後對方只要傳檔案,就會存進「你的」Google Drive——不只是隱私問題,別人傳的檔案愈多,愈快塞爆你的雲端空間。設定白名單之後,只有清單裡的對話(群組/聊天室/私訊)能觸發備份,其他人傳了也不會有任何反應。

⚠️ 順序不能反:一定要先確認④分頁已經驗收成功(能正常收到檔案),才做這一步。原因是「雞生蛋」問題——取得 sourceId 要靠 /id 指令,但 /id 指令本身也受白名單管制;如果你在還沒驗證系統正常運作、或還沒拿到自己 sourceId 之前就填了白名單,很可能連你自己都被擋在外面,看起來就像系統整個壞掉。

1
取得自己的 userId(優先用這個方法,不用手機也可以)
回到 GAS 編輯器,函式下拉選單選 setupCheck,按執行。看下方「執行記錄」,裡面有一段「📂 目前已建立的來源 → 資料夾綁定」,會列出目前每個對話的識別碼與資料夾連結,前面那串又長又亂的英數字就是 userId/sourceId。
前提:這個對話要已經成功備份過至少一個檔案(也就是④分頁的驗收步驟要先做完),不然這份清單裡不會有東西。
此方法還需要②分頁「依群組名/好友名分子資料夾」保持開啟(預設即為開啟);如果你把這個選項關掉了,這份清單會是空的,請改用下面方法2(私訊打 /id)取得。
2
或者:私訊 bot 打 /id 指令
用手機打開跟這個官方帳號的私訊對話,輸入 /id 送出,bot 會回覆你的識別碼與對話類型(私訊/群組/聊天室)。想鎖群組,就在該群組裡打這個指令。
3
填入白名單並重新部署
複製拿到的 ID → 回②分頁「進階設定」展開,貼進 ALLOWLIST 欄位(記得把自己會用到的每個對話都加進去,不然會被自己擋掉)→ 重新複製整段 CONFIG → 貼回 GAS 的 Code.gs回③分頁「管理部署作業」→ 編輯 → 建立新版本 → 部署(這步最容易忘記,忘了做的話白名單不會生效)。
ℹ️ 誠實說明一件事:LINE 並沒有提供「關閉 @ID 搜尋」的開關。未認證帳號雖然不會出現在一般關鍵字搜尋結果裡,但如果有人知道你完整的 @ID,用完整 ID 搜尋還是找得到、還是能加好友。所以白名單才是真正擋住陌生人的關鍵,不是把帳號「藏起來」。
不需要限制的話,這一項可以直接跳過不勾。

🩹 疑難排解 Q&A

照「症狀 → 為什麼 → 怎麼解」的順序排列,點標題展開內容。

Developers Console 是空的、或寫「Provider not found」
為什麼在 LINE Official Account Manager 建好官方帳號後,Developers Console 不會自動跟著出現東西,一定要先在 OA Manager 裡啟用過 Messaging API,Provider 才會被建立、才會在 Console 裡看得到。
怎麼解回①分頁第4步,照步驟在 OA Manager → ⚙️設定 → Messaging API → 啟用。千萬不要因為 Console 是空的,就跑去 Console 按「Create a new provider」自己建一個 channel——那樣會憑空多開一個全新的、無關的官方帳號,等於白做。
setupCheck 印出的網址結尾是 /dev,貼到 LINE 沒用
為什麼還沒完成正式部署之前,GAS 只有一個「測試網址」,結尾是 /dev,這個網址只有你本人登入 Google 才打得開,LINE 的伺服器打過去只會被導到登入頁面,永遠收不到你傳的內容。
怎麼解回③分頁完成「部署為網頁應用程式」,拿到結尾是 /exec 的正式網址才能用。setupCheck 執行紀錄本身也會主動偵測到 /dev 網址並提醒你。
按「Verify」失敗,顯示 302 或逾時錯誤
為什麼GAS 平台對所有 POST 請求一律回 302 轉址,這是平台天性、改不掉,LINE 的 Verify 功能不會跟著轉址走,看到 302 就判定失敗;這完全不影響實際運作,因為 GAS 是把程式跑完之後才回應的,檔案早就存好了。
怎麼解直接忽略這個錯誤訊息,改用「實際傳一個檔案」來驗證是否成功(見④分頁的巨大警示區塊,裡面有完整的技術說明與實測證據)。
傳檔案完全沒反應,聊天室頂端寫著「正在自動回覆訊息」
為什麼LINE 內建的「自動回應訊息」開著時,會自己回一句罐頭訊息,而且根本不會把訊息轉給你的程式,程式完全不知道有人傳了檔案,這是「傳檔案沒反應」最常見的元兇,比 token 或網址設定錯誤更常發生。
怎麼解OA Manager → ⚙️設定 → 回應設定,把「自動回應訊息」關閉、「Webhook」開啟、「聊天」關閉、「加入好友的歡迎訊息」關閉。詳細步驟見④分頁獨立的一大段說明。
改了程式碼,但 LINE 完全沒反應
為什麼GAS 有兩種網址:「編輯中」的 /dev(只有你自己能用)跟「已發布」的 /exec(LINE 實際打的網址)。單純按 Ctrl+S 存檔只會更新 /dev,不會自動更新 /exec。
怎麼解「部署」→「管理部署作業」→ 找到現有部署 → 按鉛筆(編輯)→ 版本選「建立新版本」→ 部署。網址不會變,不用重貼給 LINE。
專案裡好像有兩個部署,不確定改的是不是 LINE 在用的那個
為什麼只要按過不只一次「部署」,專案裡就可能同時存在「未命名」跟你正式在用的部署,改到錯的那個等於白改,LINE 那邊完全不會有變化。
怎麼解「部署」→「管理部署作業」,列表裡每個部署開頭都有一串 ID,跟你貼給 LINE 的網址裡 /macros/s/ 後面那段比對,一致的才是 LINE 正在用的那個,只能編輯那一個。絕對不要按「新增部署作業」,那會產生全新網址,讓 LINE 那邊直接失效。
第一次設定好,bot 完全沒反應,不知道是不是 token 或 Drive 設定錯了
為什麼GAS 第一次使用 Google Drive 這類權限時,需要手動跑一次授權流程,否則背景執行會「靜默失敗」(完全沒有任何錯誤訊息)。
怎麼解在 GAS 編輯器選 setupCheck 函式 → 按執行 → 跳出視窗選帳號 →「進階」→「前往(專案名稱)(不安全)」→「允許」,四項權限全部勾選(見③分頁第6步的完整說明)。跑完看下方「執行記錄」是不是每一項都打勾。
Google 授權畫面寫「會查看、編輯、建立及刪除你 Drive 中『所有』檔案」,看起來很嚇人
為什麼Google 的 Drive 建檔功能只有這一種完整權限可以選,沒有「只給這個程式用」的縮小版選項;你的備份資料夾是自己手動建立的,不是程式建的,若選窄範圍的授權,程式反而會打不開你自己建的資料夾。這是 Google 這套 API 的技術限制,不是程式要求過多權限。
怎麼解這是正常且必要的,可以放心繼續(前提是你在自己的 Google 帳號上執行、程式碼是你自己看過貼上的)。四項權限的完整說明在③分頁第6步。
在群組裡傳檔案沒反應(但私訊有反應)
為什麼LINE 官方帳號預設不能被拉進群組,而且要開的開關分散在兩個不同的後台,很多人只開了一個。
怎麼解 (a) LINE Official Account Manager → 設定(齒輪)→ 帳號設定 → 功能切換 →「加入群組或多人聊天室」→ 選「接受邀請加入群組或多人聊天室」。
(b) LINE Developers Console → 你的 Channel →「Messaging API」分頁 → 打開「Allow bot to join group chats」。
兩邊都要開,之後要把 bot 重新邀請進群組一次才會生效。
填了「白名單 ALLOWLIST」後,會不會不小心把自己也擋掉
為什麼ALLOWLIST 留空 = 所有對話都允許,這是預設最安全好上手的模式;只有主動填入才會變成「只允許清單內的對話」。
怎麼解一定要先完成④分頁的驗收(確認能正常收到檔案)再做這一步;想知道某個對話的 ID,優先用上面「執行 setupCheck 查詢」的免手機方法,或在該對話對 bot 打 /id 指令取得,複製貼進白名單欄位,記得也要把自己會用到的對話都加進去。
不知道 QUIET_MODE(安靜模式)該不該開
為什麼開啟後,程式在「成功」存檔時不會回覆任何訊息,只有失敗才會回覆——這是設計給「bot 待在有其他同事也在的群組」用的,避免每傳一個檔案就跳出一則確認訊息洗版。
怎麼解如果只有你自己一對一在用,建議保持關閉,不然你會誤以為系統沒在運作(其實只是它安靜地存好了、沒有出聲)。只有群組情境才建議打開。
偶爾同一批檔案裡少一兩個沒存到,卻沒有任何錯誤訊息
為什麼免費 Google 帳號的 GAS 平台限制「同一時間最多 30 個請求同時執行」。如果對方在 1~2 秒內一次丟超過 20~30 個檔案,極少數請求可能連程式都還沒開始跑就被系統擋下,不會留下任何 log,這是平台先天限制,不是程式錯誤。
怎麼解請對方分批傳、錯開幾秒;或事後打 /stats/last 核對數量,發現少了再請對方補傳。
同一個檔案在 Drive 裡出現了兩份一模一樣的
為什麼LINE 有「重送(redelivery)」機制:如果我方伺服器沒有及時回應,LINE 有時會把同一個事件再送一次。不過程式本身已經會用事件的識別碼在 10 分鐘內自動偵測並擋掉同一次重送,同一次 redelivery 在這個時間窗內不會重複下載或建檔。
怎麼解正常情況不需要額外處理。殘餘風險僅限「兩次 redelivery 間隔超過 10 分鐘」這種極少見情況,真的常發生才需要考慮把 DUP_STRATEGY 改成 skip 當作額外保險。
收到「檔案備份失敗:超過上限」的訊息
為什麼Google 平台本身對 GAS 單次下載檔案有約 50MB 的硬性限制,程式保守設在 45MB 留緩衝,這不是我們自己加的限制。
怎麼解請對方改用其他方式分享大檔(例如直接分享 Drive 連結),或壓縮後再傳。
影片或語音檔傳了,Drive 完全沒出現,也沒收到失敗訊息
為什麼比較大的影音檔案在 LINE 伺服器端可能還在後製處理中,這種情況下載會需要多等一下。
怎麼解稍等半分鐘到一分鐘後打 /last 確認是否補上;若持續沒有,建議請對方改傳原始檔或分段傳送。
加進「多人聊天室」後,資料夾名稱變成「聊天室_XXXXXX」這種怪名字
為什麼LINE 的「多人聊天室(room)」跟「群組(group)」是兩種不同東西,room 天生沒有名字這個屬性,LINE 官方 API 也沒有提供任何方式查詢它的名稱。
怎麼解這是正常設計,不是錯誤,程式會自動用「聊天室_房間ID後6碼」當資料夾名稱。
什麼都沒改,某天突然全部功能失效
為什麼最常見的原因是 Channel access token 在 LINE Developers Console 被「重新簽發(Reissue)」過——只要按下去,舊 token 立刻失效,程式裡存的舊 token 就再也用不了。
怎麼解到 Developers Console 重新複製最新的 token,回②分頁重新貼上、重新複製 CONFIG、貼回 Code.gs 並重新部署新版本。
放了很久沒用,某天突然發現 bot 完全沒反應
為什麼LINE 後台有時會因為 webhook 長期沒有動靜、或曾經驗證失敗,自動把「Use webhook」開關關掉。
怎麼解建議每個月定期回 Developers Console 檢查一次「Use webhook」是否還開著,尤其是「只有月初才密集使用」這種間歇性情境特別容易中招。
不確定「回覆」跟「主動推播」差在哪,會不會被扣免費額度
為什麼LINE 免費方案每月有 200 則訊息額度,但「回覆(reply)」不算在這個額度內;只有「主動推播(push)」才會扣。程式正常都是走「回覆」,但如果 replyToken 過期(超過 1 分鐘沒用到),或 NOTIFY_TO 被設定(訊息改私訊給你),都會自動改用「推播」,這種情況才會悄悄扣到免費額度。
怎麼解正常使用不會有影響;如果發現額度消耗異常快,通常代表回覆速度太慢或系統忙碌,可以留意一下使用頻率。
不知道 GAS 有沒有使用量上限,會不會用一用就被鎖住
為什麼免費 Google 帳號每天有一些配額:對外連線 20,000 次/日、單次執行最長 6 分鐘、觸發器類型累計執行時間 90 分鐘/日。日常業務量(就算月初一次湧入上百個檔案)通常都在配額內。
怎麼解正常使用不會碰到上限;如果之後檔案量大幅增加,可考慮改用 Google Workspace 付費帳號(累計時間配額會拉高到 6 小時/日,但同時執行數上限不會提高)。
畫面顯示「已收到檔案」,但 Drive 資料夾裡找不到
為什麼可能是資料夾分層邏輯(依群組名/依月份)跟你預期的不同,檔案其實在子資料夾裡,不是不見了。
怎麼解對 bot 打 /folder 指令,會直接回傳「這個對話」對應資料夾的 Drive 連結,點開就對了。
群組改名了會怎樣?備份會不會分散到兩個資料夾?
為什麼程式第一次幫每個群組/好友找資料夾時,會把「這個對話的識別碼」跟「資料夾」的對應關係永久記下來(不是靠名稱比對)。之後不管群組怎麼改名,程式都是先查這份對應記錄,找到當初記下的資料夾就直接沿用,不會因為名字看起來不一樣就誤判成新對話。
怎麼解不用做任何事,改名前後的檔案會繼續存進同一個資料夾。想眼見為憑,可以在群組改名後打 /folder,看到的仍然是同一個 Drive 連結(可能會多印一行「名稱不一致」的中性提示,不代表有問題)。
我可以自己把 Drive 資料夾改名嗎?會不會弄壞備份?
為什麼程式認的是資料夾的「ID」,不是「名字」。資料夾名稱只是給你自己看的標籤,改名字不會讓程式跟丟這個對話的備份位置。
怎麼解可以放心改成自己喜歡的名字,之後對這個對話打 /folder,看到的仍然是同一個資料夾連結。
我不小心手動刪掉了某個來源的資料夾,怎麼辦?
為什麼程式記住的「對應關係」指向的資料夾如果被刪除(丟進垃圾桶),下次這個對話再傳檔案時,程式會自動偵測到失效、清掉舊的對應記錄,重新建一個新資料夾繼續使用,不會整個卡住。
怎麼解不用特別處理,下次傳檔會自動修復;如果想確認目前的對應狀態,執行一次 setupCheck() 看綁定列表即可。若是手動搬動(不是刪除)過好幾個來源資料夾、想讓所有對話重新乾淨配對一次,可以在 GAS 編輯器手動執行 resetBindings()——這只會清空對應記錄,不會刪除任何 Drive 資料夾或檔案
怎麼知道哪個群組存到哪個資料夾?
為什麼每個對話的資料夾對應關係存在程式內部,平常不會主動列出來。
怎麼解到 GAS 編輯器,右上角函式下拉選單選 setupCheck,按執行,下方「執行記錄」會列出目前所有「來源 → 資料夾」的對應,包含資料夾名稱跟可以直接點開的 Drive 連結(同一份清單也是取得 userId 的免手機方法,見上方「上鎖」說明)。也可以在個別對話裡打 /folder 查詢那一個對話的資料夾連結。
🧹 想清除這台電腦上的所有暫存資料?請到「⑥ 完成收尾」分頁按「一鍵清除」。

🎉 ⑥ 完成收尾

確認所有里程碑都完成之後,記得回來這裡清掉這台電腦上的暫存資料。清除之後,你的 LINE 備份功能不受任何影響,會繼續正常運作。

📋 完成摘要

下面列出全部 10 個里程碑的完成狀態,跟頁首的整體進度是同一份資料,勾選狀態會即時同步。

🧹 收尾清單

⚠️ 你的 Channel access token 目前還暫存在這台電腦的瀏覽器裡。設定已經完成,這些暫存資料不再需要了,建議現在清除。
ℹ️ 程式已經在 Google 那邊跑了,清除這裡的暫存不會影響已經設定好的備份功能——LINE 傳來的檔案還是會繼續正常存進你的 Google Drive,這一步只是清掉這台電腦瀏覽器裡不再需要的暫存內容(token、表單內容等)。
日後維護要記得的事
  • 改過設定(CONFIG、白名單…)之後,一定要回③分頁「管理部署作業」→ 編輯 → 建立新版本 → 部署,單純存檔不會自動生效。
  • 如果專案裡同時有好幾個部署,一定要改對「LINE 正在用的那一個」,比對部署 ID 是否跟貼給 LINE 的網址一致。
  • LINE Developers Console 裡的「Verify」按鈕永遠會顯示失敗,這是 GAS 平台的正常現象,不代表設定錯誤,忽略即可。