
在使用 n8n 串接 Google Sheets、Google Drive 等服務時,若遇到 OAuth 無法認證,出現類似以下的 Redirect URL:
http://:5678/rest/oauth2-credential/callback
代表你的 n8n 還沒有設定「對外可用的網域」,導致 Google Cloud 無法認證這個 callback URL。本篇教學將一步步帶你解決這個問題,順利串接 Google OAuth。
🔍 問題描述:OAuth Redirect URL 缺少網域
當你在 n8n 中建立 Google API 憑證時,OAuth redirect URL 顯示為:
http://:5678/rest/oauth2-credential/callback
這種格式是錯誤的,會導致在設定Google Cloud設定時,無法順利新增「已授權的重新導向 URI」,因為:
- 沒有網域名稱
- Google Cloud 不接受
localhost
或http://:5678
這類本地位址 - 導致無法完成 OAuth 授權流程

✅ 解決方法:設定 Zeabur 上的 n8n 公開網域與環境變數
步驟 1:確認你有對外公開網域
如果你是用 Zeabur 部署 n8n,請確認你的服務已設定公開網址(例如):
https://你的網域名稱.zeabur.app
你可以在 Zeabur 專案中的 網路
分頁中找到這個設定。

步驟 2:新增或修改以下環境變數

請在 Zeabur 中進入你的 n8n 服務 → 「環境變數」頁面,設定以下 key-value:
Key | Value |
---|---|
WEBHOOK_URL | https://dado3c.zeabur.app |
N8N_HOST | dado3c.zeabur.app |
N8N_PORT | 5678 |
N8N_PROTOCOL | https |
步驟 3:重新部署 / 重啟 n8n
設定完畢後,請點選 Zeabur 的「重新部署」按鈕,等待服務重啟。

步驟 4:檢查 OAuth Redirect URL 是否正常
重新開啟 Google Sheets / Drive 憑證設定畫面,應該會看到如下正確格式的網址:
https://你的網域名稱.app/rest/oauth2-credential/callback
請將此網址複製,貼到 Google Cloud Console → OAuth 用戶端設定 → 「授權的重新導向 URI」中,並儲存。

🧪 成功驗證:串接 Google Sheets
設定完成後,回到 n8n 點擊「Connect」,會跳出 Google 帳號登入畫面,授權完成即表示連接成功!

🧪 補充說明這4個環境變數的用途與差異
🔑 WEBHOOK_URL
- 用途:指定
n8n
對外通知用的「完整網址(含協定)」 - 影響範圍:
- OAuth 認證時自動產生的 Redirect URL
- Webhook 節點發出的網址
- 正確格式:必須是完整、可公開訪問的網址(含
https://
) - 你設定的值:
https://你的網域名稱.app
→ 表示 OAuth 認證與 webhook 將使用此公開網域作為 base URL。
🌍 N8N_HOST
- 用途:指定 n8n 服務在容器內部綁定的網域或 IP(對外訪問時也會參考)
- 影響範圍:
- 內部連接用、Webhook 記錄連結、OAuth 判斷是否為同一來源
- 你設定的值:
→ 告訴系統「這個服務的網域名稱是這個」,以便產出正確的連結與認證 URL。你的網域名稱
.app
🔌 N8N_PORT
- 用途:指定 n8n 對外提供服務的 port(預設是
5678
) - 影響範圍:
- 組合在完整 URL 裡使用(例如:
https://
)你的網域名稱
.com:5678
- 組合在完整 URL 裡使用(例如:
- 你設定的值: yaml複製編輯
5678
→ 這是 Zeabur 預設的 n8n 埠號,不需修改除非你有自訂需求。
🔒 N8N_PROTOCOL
- 用途:指定連線協議是
http
還是https
- 影響範圍:
- 影響 webhook URL 與 OAuth Redirect URL 是否為 HTTPS 安全連線
- 你設定的值: nginx複製編輯
https
→ 這是正確做法,因為 Google Cloud OAuth 僅接受 HTTPS 的 callback URI。
✅ 總結(組合成 URL)
以上變數會一起組合成:
${N8N_PROTOCOL}://${N8N_HOST}:${N8N_PORT}
↓
https://你的網域名稱
.app:5678
並進一步組成:
https://dado3c.zeabur.app:5678/rest/oauth2-credential/callback
這就是 Google Cloud 要認可的「完整 OAuth Redirect URI」。
🎯 常見 Q&A
Q1:我不是用 Zeabur,怎麼辦?
你一樣可以手動設定 WEBHOOK_URL
和 N8N_HOST
,但必須確保你的 n8n 有對外公開的網域,且支援 HTTPS。
Q2:為什麼一定要 HTTPS?
因為 Google OAuth 安全政策不允許 http://localhost
或非安全連線做為 callback URL,必須為 https://
開頭的公開網址。
Q3:我已經設定環境變數,為什麼 Redirect URL 還是沒有變?
請確認是否有做以下兩件事:
- ✅ 點選 Zeabur 的重新部署(或手動重啟服務)才能讓環境變數生效
- ✅ 確認填寫的值沒有多空格或拼錯,特別是
https
是否打成http
Q4:OAuth 成功後,Google Sheets 節點還是抓不到資料怎麼辦?
這可能是因為:
- Google Sheets API 沒有開啟
- 權限範圍(Scope)不足,請確保你有勾選
Google Sheets API
和Google Drive API
- 並確認該 Google 帳號對應的試算表有「編輯權限」
可到 [Google Cloud Console → API 與服務 → 已啟用的 API] 確認是否已啟用。
Q5:OAuth 登入時顯示「應用程式未驗證」是什麼意思?
這是因為你用的是「測試中的 OAuth 憑證」。解決方法:
- 點選「進階」→「前往(你的專案 ID)」
- 若是正式用戶要大量使用,可在 Google Cloud Console 提交驗證申請
- 開發測試階段可以忽略這個警告,不影響功能使用
📌 結語
這次問題的核心在於「n8n 未設定公開網域,導致 OAuth 無法綁定」。只要你正確設定 WEBHOOK_URL
等環境變數,並使用 Zeabur 提供的免費網域,就可以輕鬆串接 Google 服務,無需自己架設 HTTPS 憑證!