iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
生成式 AI

從零開始 : 學習運用 n8n 與 Dify 的 AI 自動化實戰系列 第 15

Day 15 : API 串接失敗學習紀錄

  • 分享至 

  • xImage
  •  

一、理論基礎回顧

  1. HTTP Header 的角色

    • Content-Type: application/json 用來告訴伺服器,我送的內容是 JSON 格式。
    • Authorization: Bearer API_KEY 是身分驗證,沒有這個,伺服器不會理會我的請求。
  2. Webhook 的限制

    • 在 n8n 裡,Webhook 節點必須 先進入測試模式,外部送資料才能觸發。
    • 而且測試模式下,每次只會保留一次回應,如果忘記重新啟用就會報錯。
  3. JSON 回傳結構

    • Dify 回傳的 JSON 很複雜,有些會放在 data.response.output,有些在 choices[0].message.content
    • 這代表我要先學會「解析 JSON」,才能正確抓出 AI 的回覆。

二、實際操作中遇到的問題

  1. PowerShell 測試請求失敗

    • 我原本想用

      powershell
      ConvertTo-Json -Encoding UTF8
      

      結果 PowerShell 根本沒有這個參數,導致失敗。

    • 這說明不同系統(Linux/macOS 的 curl vs Windows PowerShell)在 API 測試上有差異。

  2. Webhook 配置錯誤

    • 一直遇到:
      NodeOperationError: Webhook node not correctly configured
      
    • 後來才知道,這通常是因為「回應模式沒設定好」或「測試模式沒啟用」。
  3. n8n Function Node 不熟悉

    • 雖然有人分享過一段程式碼,可以從 JSON 抓出回覆:
      if (data.response && data.response.output) { 
          reply = data.response.output; 
      } else if (data.choices && data.choices[0] && data.choices[0].message && data.choices[0].message.content) { 
          reply = data.choices[0].message.content; 
      }
      
    • 但我還不確定要用「Fixed Value」還是「Expression」,括號要不要保留,導致無法正確解析。

三、心得與反思

雖然今天沒有成功把串接跑通,但我覺得這些「失敗」其實讓我更清楚自己缺什麼:

  1. 工具使用差異
    之後要多練習 curl,因為教學大多用它,跨平台也比較穩定。

  2. JSON Parsing 能力

    • 即使是低程式化工具 n8n,在串接 API 時,還是需要基本的程式邏輯。
    • 學會用 Function Node 解析資料,是往後的必修課。
  3. 觀念比成功更重要
    我現在知道:串 API 不只是「照文件抄」,而是要理解 Request → Response → 資料解析 → 回傳 這一整個流程。

四、下一步計畫

1.改用 Postman 或 curl 測試 Dify API,確保資料能正確送出與接收。
2.學習 n8n Function Node 的基本寫法,把 JSON 解析成乾淨的文字回覆。
3.再次挑戰「Webhook → Dify → Webhook 回傳」這條完整流程。


上一篇
Day 14 : n8n 資料格式(JSON 與 Expression)
下一篇
Day 16
系列文
從零開始 : 學習運用 n8n 與 Dify 的 AI 自動化實戰21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言