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 ID 與 Channel 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.gs 或 appsscript.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 平台的正常現象,不代表設定錯誤,忽略即可。