為我的遠端客戶端取得 OAuth2

我的自動化程序包含 Gmail 電子郵件發送,應該以我的客戶端的 Gmail 作為發件人。我如何為我客戶端的 Gmail 添加 OAuth 驗證?
當我想創建新的 OAuth2 憑證時,會出現 Google 登入的彈出窗口,但我沒有我客戶端的憑證。我已經將該彈出窗口的鏈接傳給了他,但它不起作用。

我如何以遠程方式配置發件人(無需客戶端來到我的物理計算機),並且無需在彼此之間共享憑證?

嘿 @Daniela_Akerman,在等待回應的同時,這裡有一些可能對你有幫助的資源:

建議的資源

自動符合你的問題。

文件:

論壇:

@Hovec、@BramKn、@mje - 你們之前幫助解決過類似問題,可以看一下嗎?

由 n8n 社群機器人自動建議。這是試驗計畫 - 請在此分享反饋。

若要讓 OAuth2 遠端運作,你的 n8n 執行個體必須可透過公開 URL 存取(例如 https://n8n.yourdomain.com)。

  1. **確保 n8n 是公開的:**如果你是自行託管,請確保已將 WEBHOOK_URL 環境變數設定為你的公開網域。
  2. 開始流程:在 Gmail 的 n8n 認證設定中,點擊「連接我的帳戶」(或類似)按鈕。
  3. 複製重新導向 URL:當 Google 登入快顯視窗開啟時,不要只在「登入」頁面時從網址列複製 URL。相反地,等到快顯視窗啟用後,從該快顯視窗的網址列複製整個 URL。
  4. **傳送給客戶端:**將該特定 URL 傳送給你的客戶端。
  5. **客戶端操作:**客戶端開啟連結、登入其 Gmail,然後點擊「允許」。
  6. **握手過程:**因為你的 n8n 執行個體位於公開 URL,客戶端的瀏覽器將成功將其重新導向回你的 n8n 執行個體並附帶授權代碼。你的 n8n 將自動「捕捉」此代碼並完成設定。

**注意:**如果你無法公開託管 n8n,你可以暫時使用 ngrok 或 Cloudflare Tunnel 等工具來為你的本機 n8n 執行個體建立安全的公開 URL,僅用於此驗證步驟。

如果客戶端的 IT 政策導致 OAuth2 過於複雜,或者如果你無法移至公開 URL,你可以使用 IMAP/SMTP 方法,而不是使用 Gmail 節點的 OAuth2。

  1. 客戶端工作:要求客戶端在其 Google 帳戶設定中產生「應用程式密碼」(需要開啟 2 步驟驗證)。
  2. **你的工作:在 n8n 中,不使用具有 OAuth2 的「Gmail」節點,而是使用「傳送電子郵件」**節點並設定 SMTP 設定:
    • 主機: smtp.gmail.com
    • 連接埠: 465(SSL)或 587(STARTTLS)
    • **使用者:**客戶端的 Gmail 地址。
    • 密碼:他們產生的 16 字元應用程式密碼。
  3. **優點:**這完全繞過了 OAuth 重新導向,並在 localhost 上完美運作。

嗨 @Daniela_Akerman 歡迎!
假設你在 Google Cloud Console 中建立了自己的 OAuth 客戶端,該應用程式必須先允許你客戶端的 Google 帳戶,之後同意連結才會對他們有效。外部應用程式以測試模式啟動,只有測試使用者清單上的位址才能完成流程,其他所有帳戶都會收到拒絕存取畫面。
在 Cloud Console 中開啟 Google Auth Platform > Audience,並將發佈狀態設定為「上線」,然後再次將連結傳送給他們。在測試使用者下新增他們的位址也可以清除阻止,但測試模式會在 7 天後使權杖過期,所以憑證會在交付一週後失效。