前言
n8n的系統性學習,對各知識點地毯式學習🔍~
前面課程
定制n8n的AI老師,有AI老師制定學習大綱,參考之前的文檔(本系列n8n學習大綱,也在這里):
【n8n】如何跟著AI學習n8n_01:定制AI老師-CSDN博客
第二課開始基礎知識學習
【n8n】如何跟著AI學習n8n【02】:基礎節點學習-CSDN博客
【n8n】如何跟著AI學習n8n【02.5】:第一部分總練習-CSDN博客
👌好了,下面的課程還是基礎知識,蒼天大廈,都是一磚一瓦堆砌而成,繼續搬磚💪
🧭 Day 7:集成第三方 API —— 使用?HTTP Request
?節點
🧱 學習內容詳解
1.?HTTP Request
?節點簡介
HTTP Request
節點是 n8n 中與外部系統通信的核心節點,支持:
- 發送任意 HTTP 請求(GET / POST / PUT / DELETE 等)
- 設置請求地址(URL)
- 添加 Headers(如 Content-Type、Authorization)
- 設置 Query 參數(如?
page=1
) - 設置 Body(如 JSON 數據)
- 使用表達式動態設置參數(如動態拼接 URL)
🧪 實戰任務:調用 GitHub API 獲取用戶信息
? 任務目標:
創建一個流程,輸入 CSDN 用戶名id,使用 HTTP Request
節點調用頁面信息。
Start → Set(設置 userid) → HTTP Request(GET /:userid)?
?🔧 操作步驟:
-
Start
節點 -
Set
節點:- 添加字段?
username
,值設為?octocat
(GitHub 示例用戶)
- 添加字段?
-
HTTP Request
節點:- Method:?
GET
- URL:?
https://blog.csdn.net/{{ $input.item.json.userid}}
- Method:?
-
code
節點:用于查看 API 返回結果
??說明:
在瀏覽器,訪問:https://blog.csdn.net/2501_90561511,會顯示教主的CSDN博客:
set節點設置界面:
添加http request節點:
http request節點設置:
可通過瀏覽器控制臺,查看后臺發送的信息:
??補充:
某些 API 服務(如 GitHub)必須 設置
User-Agent
,否則會返回403 Forbidden
錯誤,這時就可以在“send headers”中設置。
🧭 Day 8:Webhook 自動化觸發流程
🧱 學習內容詳解
1. 什么是 Webhook?
Webhook 是一種基于 HTTP 的回調機制,允許第三方服務將數據推送到 n8n 的指定 URL,從而觸發自動化流程。
例如:
- 當某個表單一提交,Webhook 接收到數據后,觸發發送 Slack 消息
- 當 GitHub 有新提交,Webhook 接收事件,觸發 CI/CD 流程
2. n8n 中 Webhook 節點的作用
在 n8n 中,Webhook 節點會生成一個唯一的 URL,您可以:
- 將該 URL 配置到外部系統(如表單工具、GitHub、Zapier )
- Webhook 接收到數據后,流程開始執行后續節點
🧪 實戰任務:構建 Webhook 觸發流程
? 任務目標:
創建一個流程,使用 Webhook 接收外部? 請求,然后提取數據并輸出。
流程邏輯
Webhook → Set(提取數據)?
🔧 操作步驟:
Step 1:添加 Webhook 節點
- 點擊右下角 “+” 按鈕
- 輸入?
webhook
,選擇?Webhook
?節點
- 添加后,點擊節點配置面板
配置:
HTTP Method
:Get
Path
:輸入一個唯一路徑,如?/form-submission
🧠 Webhook 節點會生成一個 URL:http://localhost:5678/webhook-test/form-submission
?
?點擊“listen for test event”,n8n會監聽地址http://localhost:5678/webhook-test/form-submission:
拷貝這個監聽地址,打開一個瀏覽器窗口,訪問此地址,顯示:
?n8n收方的訪問信息,作為輸出內容,并結束監聽:
修改webhood配置:
HTTP Method
:Post
?post方式不能直接用瀏覽器,通過url訪問,這里用curl方式,在dos窗口,輸入如下命令:
curl -X POST http://localhost:5678/webhook-test/form-submission -H "Content-Type: application/json" -d "{\"name\": \"Alice\", \"email\": \"alice@example.com\"}"
?執行成功,會返回信息:
?webhook節點會接受到,curl傳入的數據:
?也可以使用測試工具網站Hoppscotch,Hoppscotch ? Open source API development ecosystem,操作方便一點:
?備注:
Hoppscotch使用的更多內容,參考文檔
【工具】curl測試工具Hoppscotch 測試工具使用教程(零基礎版)-CSDN博客
?👌特別要好評一下👌?
- 😄Hoppscotch在線可以測試本地地址,類似的工具postman網站,就只能用桌面程序測試,在線測試不了,教主對此感覺非常神奇,哈哈😄
Step 2:添加?Set
?節點
- 點擊 “+” 添加?
Set
?節點 - 連接 Webhook → Set
在 Set
節點中設置字段,例如:
Name | Value |
---|---|
name | {{ $input.json.name }} (從 Webhook 數據中提取) |
{{ $input.json.email }} |
?Set節點設置及測試:
💡
$input.json
表示 Webhook 接收到的原始數據
Step 3:執行流程(觸發 Webhook)
- 保存流程
- 點擊 Webhook 節點右上角的?“Execute Workflow”(執行流程)
- n8n 將進入監聽模式,等待外部請求
📌 提示:Webhook 流程不會自動執行,需要外部服務發送請求觸發
Step 5:使用 Hoppscotch 或 curl 測試 Webhook
?使用測試工具網站Hoppscotch,Hoppscotch ? Open source API development ecosystem,測試:
- Method:?
POST
- URL:?http://localhost:5678/webhook-test/form-submission
- Body:?
raw
?→?JSON
,輸入:
{"name": "Alice","email": "alice@example.com"}
?運行界面:
🧭 Day 9:Webhook + Slack 自動通知流程
🧱 學習內容詳解
1. Webhook 節點的作用
Webhook 是一種事件驅動的自動化觸發方式,允許您接收外部系統的 HTTP 請求并觸發流程執行。
常用于:
- 接收表單提交通知
- 接收 GitHub、GitLab、Notion、Google Form 簽名
- 接收 API 回調
2. 通知 節點的作用
自動發送消息,是自動化通知流程的重要組成部分。
🧪 實戰任務:構建 Webhook 觸發 Slack 通知/SMTP通知流程
? 任務目標:
當某個外部系統(如表單)發送 POST 請求到 n8n 的 Webhook,n8n 接收后提取數據,并自動發送 Slack 消息通知。
流程結構如下:
Webhook → Set(提取 name 和 email) → Slack(發送通知)
🔧 操作步驟
在上一個練習的基礎上,set節點后,增加下面節點。
Step :添加并配置 Slack 節點
📌Slack 是一款流行的企業協作和即時通訊平臺,專為團隊工作設計。它于2013年推出,已成為全球數百萬團隊使用的協作工具。
核心功能
頻道(Channels)?- 按項目、主題或團隊組織的對話空間
- 公開頻道:整個組織可見
- 私密頻道:僅受邀成員可見
- 共享頻道:與外部組織協作
即時消息?- 支持一對一或群組對話
文件共享?- 可直接上傳和預覽多種文件類型
應用集成?- 支持與數千種第三方工具(如Google Drive、Zoom、GitHub等)集成
搜索功能?- 強大的歷史記錄搜索能力
Slack 節點功能概述
?Slack 節點允許用戶與 Slack 平臺進行交互。以下是關于 Slack 節點的詳細介紹和相關知識。
Slack 節點在 n8n 中可以實現以下功能:
- 發送消息到 Slack 頻道或用戶
- 從 Slack 獲取消息
- 響應 Slack 事件(如特定關鍵詞觸發)
- 與 Slack 的交互式組件(如按鈕、菜單)交互
- 管理 Slack 頻道、用戶和工作空間
?=====》》》但是,國內經常訪問不了,下面就來嘗試一下替代方案吧,對同胞們來講,更實用~
? 替代方案 :使用?SMTP
?節點發送郵件通知
📨 作用:
- 當流程觸發時,自動發送一封郵件到您的郵箱
- 適合需要接收通知、記錄流程觸發信息的場景
🧱 配置郵件節點的前提條件:
您需要一個支持 SMTP 的郵箱服務,例如:
- Gmail
- QQ 郵箱
- 163 郵箱
- 自建郵件服務器(如 Mailgun、SendGrid)
📝 示例流程:
Webhook → Set(提取數據) → SMTP(發送郵件)
?這里以QQ郵箱為例,需要首先設置郵箱支持SMTP,如何設置QQ郵箱支持,從程序發送郵件,請參考文檔:
【問題】如何設置QQ郵箱支持,從程序發送郵箱-CSDN博客
增加smtp節點:
?然后選擇“send an email”
進入設置:
?使用smtp,需要授權憑證,這里新建一個,或者用之前配置好的,配置項如下:
保存后會驗證有效性,選擇憑證后,填入其他信息。
必填字段
- From Email: 發件人郵箱(必須與SMTP賬戶一致,如?
123456789@qq.com
)。 - To Email: 收件人郵箱(如?
recipient@example.com
)。 - Subject: 郵件標題(如?
測試郵件
)。 - Email Body: 郵件正文(支持純文本或HTML)。
?可選功能
- 附件:可在?Add File?上傳或通過表達式引用文件路徑。
- 抄送/密送:在?CC/BCC?字段添加其他收件人。
?設置示例:
?html代碼:
<h1>{{ $json.name }}申請注冊!</h1>
<p>其郵箱是:<strong>{{ $json.email }}</strong></p>
?點擊“test step”,可以查到發送過程,打開自己的郵箱,可以看到郵件信息:
🧭 Day 10:n8n 與 Google Sheets 集成
🧱 學習內容詳解
1.?Google Sheets
?節點簡介
Google Sheets
節點可以實現與 Google 表格的集成,支持以下操作:
- 讀取數據(Get)
- 添加數據(Append)
- 更新數據(Update)
- 清除數據(Clear)
非常適合用于:
- 接收表單數據并寫入表格
- 創建自動化報告
- 集成用戶注冊、訂單、反饋等數據源
=====》》》很遺憾,國內訪問不google,本節跳過,我們就把數據存在數據庫里吧,比excel更強大~
???備注:n8n中的excel 365,看起來也行,但注冊賬號太太麻煩,免費額度還很低,所以果斷拋棄了🥱
🧭 Day 11:n8n 與數據庫集成(MySQL示例)
🧱 學習內容詳解
1. 數據庫節點選擇
n8n 支持主流關系型數據庫,您可根據實際需求選擇:
數據庫類型 | 適用場景 | 節點名稱 |
---|---|---|
PostgreSQL | 復雜查詢、JSON 數據支持 | PostgreSQL |
MySQL | Web 應用常用數據庫 | MySQL |
2. 配置數據庫節點的前提條件
📌 連接信息準備
- 主機地址:數據庫服務器的 IP 或域名(如?
localhost
?或?127.0.0.1
) - 端口:默認 PostgreSQL 用?
5432
,MySQL 用?3306
- 用戶名/密碼:有讀寫權限的數據庫賬號
- 數據庫名稱:目標數據庫名(如?
n8n_automation
)
🔒 安全建議
- 使用?SSH 隧道?或?VPN?連接生產數據庫
- 為 n8n 創建專用數據庫用戶(最小權限原則)
🧪 實戰任務:Webhook 數據寫入數據庫(mysql示例)
? 任務目標
構建一個完整流程:
- 接收 Webhook 提交的用戶數據
- 使用?
Function
?節點清洗數據 - 將數據寫入MySQL 數據庫
流程結構:
Webhook → Set → Function(數據清洗)→ MySQL(Insert)
🔧 操作步驟(以 MySQL 為例)
?Step 1:數據庫準備
mysql的安裝及數據庫表的創建,參考文檔:
【數據庫】MySQL 詳細安裝與基礎使用教程(8版本下載及安裝)-CSDN博客
數據庫及表信息:
Step 2:添加?Webhook
?節點
- 方法:
POST
- Path:
/form-submission
Step 3:添加?Set
?節點
提取字段:
<JSON>
{
"raw_name": "{{ $json.body.name }}",
"raw_email": "{{ $json.body.email }}"
}
Step 4:添加 Code節點
數據清洗腳本:
<JAVASCRIPT>
const cleanedData = {name: $input.first().json.raw_name.toUpperCase().trim(),email: $input.first().json.raw_email.toLowerCase().trim()};return [ { json: cleanedData } ];
Step 5:添加?MySQL
?節點
憑證設置信息:
??警告??:
主機不能用127.0.0.1,或者localhost,必須用host.docker.internal,因n8n部署在docker的容器里,容器里的localhost是其容器內部的重裝系統,其所在的主機,需要通過host.docker.internal訪問,如果你的n8n不是這種情況,自行判斷。
【Docker 容器內的應用(如n8n),訪問不到外部主機的應用(如mysql)】相關文檔請參考:
https://blog.csdn.net/2501_90561511/article/details/149812379
配置節點參數:
然后,查看數據庫,就增加了數據:
?step6:自行優化
上邊mysql設置的id,是寫的固定值,小伙伴們自行優化一下,在前邊節點增加id字段值的增加,就更完美了。
結束語
今天就到這里,就到這里,已經加班好多分鐘了,太投入了,小紅花🌸🌸🌸