iT邦幫忙

2025 iThome 鐵人賽

0
DevOps

Mac 環境 n8n 30 天學習計畫系列 第 27

Day 27|實作 Part 1:收集資料(API / Webhook)與 Debug

  • 分享至 

  • xImage
  •  

主題:學生日程自動提醒系統
流程:
Google Calendar → n8n → Function(格式化訊息) → Email / Line Notify

今天的重點是「第一段」:

📡 收集資料(Google Calendar API 或 Webhook)


🧩 一、今日任務總覽

任務步驟 內容 成功標準
1️⃣ 建立 Google Cloud OAuth 憑證 取得 Client ID & Client Secret 成功在 n8n 驗證通過
2️⃣ 在 n8n 建立 Google Calendar Node 連線 Calendar API 能抓到當日事件
3️⃣ 驗證資料輸出 使用 “Execute Node” 螢幕可看到 JSON 資料
4️⃣ 測試 Webhook 觸發 用瀏覽器或 Postman 測試 webhook URL 成功執行 workflow
5️⃣ Debug 與記錄心得 記下失敗原因與學到的重點 整理成心得報告

🪄 二、實作步驟詳解

Step 1️⃣|建立 Google Cloud OAuth 憑證

  1. 登入 Google Cloud Console

  2. 建立新專案,例如:n8n-reminder-system

  3. 左側選單 → API與服務 → 憑證 (Credentials)

  4. 按「建立憑證」 → OAuth 2.0 用戶端 ID

    • 應用程式類型:網頁應用程式

    • 名稱:n8n-oauth

    • 已授權的重新導向 URI 填入:

      http://localhost:5678/rest/oauth2-credential/callback
      
  5. 建立完成後會得到:

    • Client ID
    • Client Secret
      ➜ 複製下來待會在 n8n 登入使用。

Step 2️⃣|在 n8n 建立 Google Calendar Credential

  1. 打開 n8n (http://localhost:5678)。

  2. 進入 Credentials → 新增 → Google Calendar OAuth2 API

  3. 填入:

    • Client ID:剛才取得的值
    • Client Secret:剛才的值
    • Scopes(預設即可)
  4. 點「Connect My Account」,系統會跳出 Google 登入視窗,授權完成即成功。

✅ 驗證成功後,Credential 會顯示綠色勾勾。


Step 3️⃣|建立「Google Calendar Node」抓取事件

  1. 新增節點 → 搜尋 “Google Calendar”。

  2. Operation 選擇 Get All Events

  3. Calendar ID 欄位填入你的日曆 ID:

    • 通常是 Gmail 地址,例如 youremail@gmail.com
  4. 設定時間範圍(用 Expression):

    • Time Min: ={{ $moment().startOf('day').toISOString() }}
    • Time Max: ={{ $moment().endOf('day').toISOString() }}
  5. 點「Execute Node」測試。

👉 如果成功,你會在右側看到:

{
  "summary": "期中報告準備",
  "start": {
    "dateTime": "2025-10-27T09:00:00+08:00"
  },
  "end": {
    "dateTime": "2025-10-27T10:00:00+08:00"
  },
  "description": "與同學討論報告方向"
}

Step 4️⃣|建立 Webhook(可選,用來手動測試觸發)

如果你想在不等 Cron 的情況下測試 workflow:

  1. 在 workflow 開頭新增 Webhook Node

  2. 設定:

    • HTTP Method:GET
    • Path:/daily-reminder-test
  3. 儲存 workflow → 點上方 “Test”

  4. 打開瀏覽器輸入:

    http://localhost:5678/webhook-test/daily-reminder-test
    
  5. 如果 workflow 被觸發,就能看到 Console log 與下一步節點執行。


Step 5️⃣|Debug 與常見錯誤處理

問題 原因 解法
❌ OAuth 無法連線 Redirect URI 錯誤 必須與 Google Cloud 的 URI 完全一致
⚠️ 沒有抓到事件 時區不符 / 無事件 確認 calendar 有事件、時區設為 Asia/Taipei
⚠️ n8n 無法執行 node credentials 未綁定 點 node → Credentials → 選正確憑證
⚠️ JSON 顯示亂碼 n8n UI 渲染問題 點右上角「JSON View」查看原始資料
⚠️ Webhook 無反應 workflow 未啟用 點右上角「Activate」

上一篇
Day 26 — 流程設計:畫流程圖與系統設計思考
下一篇
Day 28|實作 Part 2:資料處理(AI / Function)
系列文
Mac 環境 n8n 30 天學習計畫30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言