文 | 萬涂幻象
大家好,我是萬涂幻象,一名專注商業(yè) AI 智能體開發(fā)與企業(yè)系統(tǒng)落地的實(shí)踐者。
長期聚焦定制化業(yè)務(wù)系統(tǒng)開發(fā)、多維表格定制、Prompt定制、智能體設(shè)計(jì)、自動(dòng)化工作流構(gòu)建、ComfyUI工作流與AI視頻制作,致力于為各行各業(yè)打造能創(chuàng)造增長、構(gòu)筑優(yōu)勢的AI落地解決方案。
在這里,持續(xù)分享前線實(shí)戰(zhàn)案例與結(jié)構(gòu)化落地方法,文末還有實(shí)用資源推薦,歡迎收藏~
上周六,我們雷打不動(dòng)的在騰訊會(huì)議里做會(huì)員專屬共學(xué)。
聊著聊著,一位朋友突然在聊天框里拋出了一個(gè)問題,當(dāng)時(shí)的截圖我還留著:
他問:“我看 n8n 好像可以通過 webhook 來定時(shí)發(fā)送給飛書信息,啥時(shí)候?qū)iT出一個(gè)講 webhook 的文章學(xué)習(xí)一下?”
這個(gè)問題,一下子把我心里那個(gè)“疙瘩”給勾出來了。
說真的,這玩意兒太常見了。你要做飛書多維表格的數(shù)據(jù)同步,做 Github 代碼提交后的自動(dòng)化部署,做 Dify 智能體里的工具調(diào)用…基本上,只要你想讓兩個(gè)獨(dú)立的系統(tǒng)“實(shí)時(shí)”地通個(gè)氣,就繞不開它。
但最要命的是,你去網(wǎng)上搜,出來的解釋全是“HTTP 回調(diào)”、“事件驅(qū)動(dòng)”、“被動(dòng)通信機(jī)制”…
全是這種正確的廢話。
這種解釋就像一本寫滿了樂理的說明書,你看完了,還是不知道怎么把歌唱出來。
今天,我就用一線開發(fā)者的大白話,把這事兒給你徹底“盤”明白。不拽詞兒,只求一件事:讓你看完就能跟別人講清楚,上手就能用起來。
01|忘掉那些“術(shù)語”,Webhook 就是個(gè)“系統(tǒng)門鈴”
咱們先做個(gè)約定,把“回調(diào)”、“推送”、“HTTP”這些詞全扔了。
你就想一個(gè)最簡單的事。
假如你點(diǎn)了份外賣,想知道送到哪了。
傳統(tǒng)的 API 方式是啥樣的?
是你,每隔五分鐘就得打開 App,刷新一下,問系統(tǒng):“到了嗎?”、“現(xiàn)在到哪了?”、“還要多久?”。
這叫“輪詢”。你主動(dòng),系統(tǒng)被動(dòng)。
說實(shí)話,這挺煩人的。你累,系統(tǒng)也累。大部分查詢都是無效的,浪費(fèi)資源。
那 Webhook 是啥樣的?
是你下單后,該干啥干啥。外賣小哥一到你家樓下,他主動(dòng)給你打電話:“喂!你的外賣到了,下來拿一下!”
這就叫 Webhook。
你不用一遍遍去問。事情辦妥了,對方會(huì)主動(dòng)來“按門鈴”通知你。
所以,Webhook 的本質(zhì),就是一個(gè)“反向”的 API。
- API 是你問系統(tǒng)要數(shù)據(jù)。
- Webhook 是系統(tǒng)主動(dòng)給你送數(shù)據(jù)。
就這么簡單。
它解決的核心問題,就是系統(tǒng)之間的實(shí)時(shí)通知。
比如,客戶在你的網(wǎng)站上付了款,支付平臺(tái)(微信、支付寶)就會(huì)通過 Webhook“按一下你服務(wù)器的門鈴”,告訴你:“嘿,訂單號(hào) XXX 付錢了,趕緊發(fā)貨!”。
你不需要寫個(gè)程序每秒鐘都去問支付平臺(tái):“那個(gè)訂單付錢沒?那個(gè)訂單付錢沒?”。
你看,是不是一下子就清爽了?
02|光說不練假把式,這個(gè)“門鈴”咋安裝?
理解了原理,我們再往下走一步,看看這個(gè)“門鈴”具體是怎么安裝和工作的。
整個(gè)過程,就三步。
? 第一步:你得先告訴別人你家的“門牌號(hào)”
這個(gè)“門牌號(hào)”,在技術(shù)上叫 回調(diào) URL (Callback URL)。
說白了,它就是一個(gè)網(wǎng)址鏈接。
你得在“外賣平臺(tái)”(比如 Github、飛書、或者任何支持 Webhook 的系統(tǒng))上,找到配置的地方,把你這個(gè) URL 填進(jìn)去。
這個(gè)動(dòng)作,本質(zhì)上就是在告訴它:“以后有事兒,往這個(gè)地址給我打電話就行?!?/p>
很多自動(dòng)化工具,比如 n8n、Zapier,它們的 Webhook 觸發(fā)器節(jié)點(diǎn),一點(diǎn)開,就會(huì)自動(dòng)生成一個(gè)獨(dú)一無二的 URL,你復(fù)制過去用就行,極其方便。
? 第二步:說清楚,啥事兒才需要“按門鈴”
你不能讓別人雞毛蒜皮的事都來通知你。
所以,在配置 URL 的時(shí)候,通常還會(huì)讓你勾選需要訂閱的“事件 (Event)”。
比如在 Github 里,你可以只勾選 push (代碼推送) 事件。那只有當(dāng)有人提交代碼時(shí),Github 才會(huì)來“按門鈴”。別人創(chuàng)建 issue、發(fā)起 pull request,都跟你沒關(guān)系,不會(huì)來煩你。
這個(gè)“訂閱”機(jī)制很重要,能幫你過濾掉一堆不必要的垃圾信息。
? 第三步:接收“快遞”,并簽收
當(dāng)事件發(fā)生后,對方系統(tǒng)就會(huì)朝你的 URL 地址,發(fā)送一個(gè) HTTP POST 請求。
這個(gè)請求里,裝著一個(gè)最重要的東西,叫 Payload (有效載荷)。
你可以把它理解成“快遞包裹”里的具體物品清單。
它通常是個(gè) JSON 格式的文本,里面清清楚楚地寫著這次通知的所有信息。比如誰、在什么時(shí)間、干了什么事、相關(guān)的數(shù)據(jù)是啥。
你的服務(wù)器收到這個(gè)請求后,要干兩件事:
- 立刻回復(fù)一個(gè)“收到”的信號(hào)。 在技術(shù)上,就是返回一個(gè) 200 OK 的狀態(tài)碼。這是禮貌,也是規(guī)則。你得告訴對方,“信我收到了,放心吧”。
- 拆開“包裹”,辦正事。 把 Payload 里的數(shù)據(jù)拿出來,該更新數(shù)據(jù)庫的更新數(shù)據(jù)庫,該發(fā)通知的發(fā)通知。
理論說完了,有代碼底子的朋友可能想看看具體怎么寫。下面就是一個(gè)用 Python 的 Flask 框架搭的最簡單的接收器,讓你有個(gè)體感。
【代碼示例】
from flask import Flask, request, jsonify
# 初始化一個(gè) Flask 應(yīng)用
app = Flask(__name__)
# 創(chuàng)建一個(gè)路由,地址是 /webhook,只接受 POST 請求
@app.route('/webhook', methods=['POST'])
defhandle_webhook():
# 打印一下,看看請求頭是啥樣
print("Headers: ", request.headers)
# 獲取發(fā)來的 JSON 數(shù)據(jù)(也就是那個(gè)“包裹”)
data = request.get_json()
# 打印一下“包裹”內(nèi)容
print("Received Webhook Payload: ", data)
# 在這里,你可以加入自己的業(yè)務(wù)邏輯
# 比如:把 data 存到數(shù)據(jù)庫、發(fā)個(gè)飛書通知等等
# 告訴對方“我收到了”,返回一個(gè)成功的 JSON 響應(yīng)和 200 狀態(tài)碼
return jsonify({"status": "success"}), 200
# 啟動(dòng)這個(gè)服務(wù),讓它在 5000 端口監(jiān)聽
if __name__ == '__main__':
app.run(port=5000, debug=True)
【代碼解讀】
你看,核心代碼就幾行。它干的事,和我上面說的一模一樣:指定一個(gè)地址 (/webhook),等著別人用 POST 方法來“按門鈴”,收到“包裹” (data) 后,打印一下內(nèi)容,最后回復(fù)一句“知道了” (200 OK)。
03|想用好它,這幾個(gè)“坑”你必須躲開
理論看著挺簡單,但真正在生產(chǎn)環(huán)境里用起來,魔鬼全在細(xì)節(jié)里。作為開發(fā)者,我踩過不少坑,有幾個(gè)是致命的,必須跟你說明白。
? 坑一:引狼入室——你得確定按門鈴的是“誰”
Webhook 的 URL 是暴露在公網(wǎng)的。
這就意味著,任何人,只要知道了你這個(gè)地址,都能給你發(fā)個(gè)假請求,冒充 Github、冒充支付平臺(tái)。
要是你收到假消息就發(fā)貨、就改數(shù)據(jù),那公司就得被你搞黃了。
所以,你必須用一套組合拳,來確保來的人是你等的人。
最基礎(chǔ)也是最重要的一招,就是對“暗號(hào)”,也就是“簽名驗(yàn)證 (Signature Verification)”。
在配置 Webhook 時(shí),系統(tǒng)通常會(huì)給你一個(gè)密鑰 (Secret)。對方在發(fā)通知時(shí),會(huì)用這個(gè)密鑰和“包裹”內(nèi)容,通過一個(gè)加密算法(比如 HMAC-SHA256)算出一個(gè)“簽名”,放在請求頭里一起發(fā)過來。
你收到后,用同樣的密鑰和內(nèi)容,用同樣的算法,也算一遍。
最后比對一下兩個(gè)“簽名”一不一樣。一樣,就是自己人,放行。不一樣,就是壞人,直接關(guān)門。
硬核代碼:用 Python 實(shí)現(xiàn)“對暗號(hào)”邏輯
這個(gè)“對暗號(hào)”的過程,用代碼寫出來其實(shí)也不復(fù)雜。我拿 Python 舉個(gè)例子,你看一眼就明白。
【代碼示例】
import hmac
import hashlib
# 假設(shè)這是你和對方約定好的“暗號(hào)本”(密鑰)
SECRET_KEY = "your_shared_secret_key"
def verify_signature(request):
# 從請求頭里拿到對方發(fā)來的“暗號(hào)”
received_signature = request.headers.get('X-Hub-Signature') # 不同平臺(tái)請求頭字段可能不一樣
# 如果連暗號(hào)都沒有,直接判定是壞人
if not received_signature:
return False
# 獲取原始的“包裹”內(nèi)容(注意是bytes格式)
payload_body = request.get_data()
# 用我們的“暗號(hào)本”和同樣的加密方法,自己算一遍“暗號(hào)”
computed_signature = 'sha1=' + hmac.new(SECRET_KEY.encode(), payload_body, hashlib.sha1).hexdigest()
# 用 hmac.compare_digest 來比較兩個(gè)暗號(hào),可以防止時(shí)序攻擊,更安全
return hmac.compare_digest(received_signature, computed_signature)
【代碼解讀】
核心邏輯就是“收到暗號(hào)、自己算一遍、再比較”。
但你以為這就完了?高手過招,還得留兩手。對于金融支付這種打死不能出錯(cuò)的場景,你還得再加兩道保險(xiǎn):
- 保險(xiǎn)一:認(rèn)“門牌”(IP 白名單)。 不僅要對上暗號(hào),還得看看這人是不是從咱允許的幾個(gè)“大院兒門口”進(jìn)來的。像 Github 這種大平臺(tái),都會(huì)提供他們發(fā)請求的 IP 地址列表。你可以在服務(wù)器上設(shè)置,只接受這些 IP 的來訪。
- 保險(xiǎn)二:查“郵戳”(防重放攻擊)。 壞人可能會(huì)把你合法的請求錄下來,過幾分鐘再原封不動(dòng)地發(fā)給你。怎么防?查請求里帶的時(shí)間戳。如果一個(gè)請求的時(shí)間戳離現(xiàn)在已經(jīng)超過了5分鐘,管他暗號(hào)對不對,直接當(dāng)成過期郵件扔掉。
記住,簽名是基礎(chǔ),IP白名單和時(shí)間戳是高配。 任何沒有簽名驗(yàn)證的 Webhook,都等于是在裸奔。
? 坑二:一件事通知了八百遍——你得防止“健忘”
網(wǎng)絡(luò)這玩意兒,非常不靠譜。
有時(shí)候你明明回復(fù)了“收到”(200 OK),但對方因?yàn)榫W(wǎng)絡(luò)抖動(dòng)沒收到你的回復(fù),它就會(huì)認(rèn)為你掛了,然后過一會(huì)兒,又給你發(fā)一遍一模一樣的通知。
這就是“消息重復(fù)”。
如果你沒做處理,用戶付了一次錢,你給他發(fā)了兩次貨。代碼提交了一次,CI/CD 給你構(gòu)建部署了兩次。簡直是災(zāi)難。
避坑方法:辦事前先登記——保證“冪等性 (Idempotency)”。
這個(gè)詞聽著唬人,但做起來很簡單。對方發(fā)來的“包裹”(Payload)里,通常會(huì)有一個(gè)獨(dú)一-無二的 “事件ID (event_id)”。
你每次處理之前,先拿這個(gè) ID 去你的數(shù)據(jù)庫或者緩存里查一下,看是不是已經(jīng)處理過了。
- 處理過: 直接回復(fù)“收到”,但啥也別干。
- 沒處理過: 先把這個(gè) ID 存起來,標(biāo)記為“已處理”,然后再去干活。
這樣一來,不管它來多少次重復(fù)的通知,你都只處理第一次。
? 坑三:活兒太慢,把“信使”給拖死了——你得學(xué)會(huì)“異步”
有的時(shí)候,你收到 Webhook 之后要干的活兒很復(fù)雜。
比如,要處理一堆數(shù)據(jù),要調(diào)用好幾個(gè)其他系統(tǒng)的 API,可能要花個(gè)幾十秒甚至幾分鐘。
但對方的“耐心”是有限的,它發(fā)出請求后,可能等個(gè) 5 秒、10 秒沒收到你的“200 OK”回復(fù),就直接判定你超時(shí)失敗了。
然后,它又會(huì)開始“重試”,給你再發(fā)一遍…這就陷入了惡性循環(huán)。
避坑方法:先把“信”收下,活兒交給“后臺(tái)”慢慢干——異步處理。
正確的做法是,你的 Webhook 接收程序,絕對不要干任何耗時(shí)的活兒。
它的唯一任務(wù),就是在驗(yàn)證完所有安全檢查后,立刻把收到的“包裹”原封不動(dòng)地扔進(jìn)一個(gè)“消息隊(duì)列”(比如 RabbitMQ、Redis List)里,然后馬上回復(fù)“200 OK”,告訴對方“我收到了,你先走吧”。
然后,你有另外一個(gè)獨(dú)立的、在后臺(tái)運(yùn)行的程序,慢慢地從“隊(duì)列”里把這些“包裹”一個(gè)個(gè)拿出來,不慌不忙地處理。
這樣就把“接收”和“處理”這兩個(gè)步驟徹底分開了,互相不影響。你的 Webhook 接口能瞬間響應(yīng),永遠(yuǎn)不會(huì)超時(shí)。
04|上手聯(lián)調(diào):本地跑通你的第一個(gè) Webhook
光懂理論不行,真干起活來,你馬上會(huì)遇到一個(gè)最頭疼的問題:這玩意兒太難調(diào)試了!
我把一套絕對能跑通的、“從零到一”的完整聯(lián)調(diào)步驟整理了出來,你嚴(yán)格按照這個(gè)順序操作,保證沒問題。
? 第一步:準(zhǔn)備工具和代碼
動(dòng)手之前,先把工具和環(huán)境備齊,把準(zhǔn)備工作做到位。
安裝 Python 環(huán)境:
- 確保你的電腦上安裝了 Python。如果沒有,請先從 Python 官網(wǎng)下載安裝。
- 打開命令行(Windows 叫 PowerShell 或 CMD,macOS 叫終端),輸入 pip install Flask 并回車,安裝我們需要的“接收器”框架。
下載并認(rèn)證 Ngrok(關(guān)鍵步驟):
- 官方地址: https://ngrok.com/download
- 下載:根據(jù)你的操作系統(tǒng),下載對應(yīng)的 Ngrok 壓縮包并解壓,你會(huì)得到一個(gè) ngrok.exe (Windows) 或 ngrok (macOS/Linux) 文件。
- 獲取令牌 (Authtoken):訪問 https://dashboard.ngrok.com/signup 注冊一個(gè)免費(fèi)賬號(hào)(用 Github 或 Google 登錄最快)。登錄后,在左側(cè)菜單找到 “Your Authtoken”,復(fù)制那一長串令牌字符。
- 認(rèn)證(只需一次):打開命令行,進(jìn)入 ngrok 文件所在的目錄,運(yùn)行認(rèn)證命令,把你的令牌粘貼在后面:
- Windows PowerShell: .\ngrok config add-authtoken <粘貼你的令牌>
- macOS/Linux/CMD: ngrok config add-authtoken <粘貼你的令牌> 這條命令會(huì)把令牌保存在本地,以后就不用再認(rèn)證了。
下載 Postman:
- 官方地址: https://www.postman.com/downloads/
- 安裝:這是個(gè)桌面 App,下載對應(yīng)版本安裝即可。建議注冊免費(fèi)賬號(hào),方便保存和同步你的測試請求。
? 第二步:創(chuàng)建并運(yùn)行你的“接收器”程序
- 在你電腦上創(chuàng)建一個(gè)新文件夾(比如 webhook_test),在里面創(chuàng)建一個(gè)名為 app.py 的文件。
- 在你電腦上創(chuàng)建一個(gè)新文件夾(比如 webhook_test)。
- 關(guān)鍵操作:把剛才解壓得到的 ngrok.exe 文件,復(fù)制到這個(gè) webhook_test 文件夾里。
- 在 webhook_test 文件夾里,創(chuàng)建一個(gè)名為 app.py 的文件。
- 把下面這段代碼完整地復(fù)制粘貼到 app.py 文件里并保存。
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def handle_webhook():
print("====== A Request Came In! ======")
data = request.get_json()
print("Received Payload: ", data)
print("===============================\n")
return jsonify({"status": "I got it!"}), 200
if __name__ == '__main__':
app.run(port=5000)
- 打開第一個(gè)命令行窗口,進(jìn)入 webhook_test 文件夾,運(yùn)行:python app.py
- 你會(huì)看到服務(wù)啟動(dòng),并正在 5000 端口上監(jiān)聽。關(guān)鍵:讓這個(gè)窗口一直開著,別關(guān)!
? 第三步:啟動(dòng)“隧道”并獲取公網(wǎng)地址
- 重新打開一個(gè)全新的、第二個(gè)命令行窗口。
- 進(jìn)入 webhook_test 文件夾(因?yàn)槲覀儼?ngrok.exe 復(fù)制進(jìn)來了)。
- 關(guān)鍵提醒:接下來這一步是在命令行里輸入命令來運(yùn)行 Ngrok,而不是去雙擊 ngrok.exe 文件。命令行工具的正確用法就是通過命令來調(diào)用它。
- 運(yùn)行命令:
- Windows PowerShell: .\ngrok http 5000
- macOS/Linux/CMD: ngrok http 5000 (這里的 5000 必須和你 app.py 里的端口號(hào)一致)。
- Ngrok 啟動(dòng)后,你的命令行窗口會(huì)顯示類似下面這樣的界面:
ngrok (Ctrl+C to quit)
Session Status online
Account Your Name (Plan: Free)
Forwarding https://your-string.ngrok-free.app -> http://localhost:5000
- 關(guān)鍵操作: 找到 Forwarding 這一行,完整復(fù)制 -> 箭頭前面那個(gè)以 https:// 開頭的網(wǎng)址。這就是你暴露在公網(wǎng)上的 Webhook URL。
? 第四步:發(fā)送測試“信號(hào)”
- 打開 Postman。
- 關(guān)鍵提醒:如果是第一次打開,請點(diǎn)擊橙色的 “Switch to Workspaces” 按鈕進(jìn)入主界面。
- 在主界面上方,找到 “New” 按鈕并點(diǎn)擊,來新建一個(gè)請求。
- 新建一個(gè)請求,在請求方法下拉框里,把 GET 改成 POST。
- 在地址欄里,粘貼你上一步從 Ngrok 復(fù)制的公網(wǎng) URL,并在后面加上 /webhook。
- 完整的地址看起來像這樣:https://<一串隨機(jī)字符>.ngrok-free.dev/webhook
- 點(diǎn)擊下方的 Body 標(biāo)簽,選擇 raw,再在最右邊的下拉框里選擇 JSON。
- 在文本框里輸入一些測試內(nèi)容,比如:
{ "message": "Hello from Postman" }
- 點(diǎn)擊右上角藍(lán)色的 Send 按鈕發(fā)送。
? 第五步:驗(yàn)證結(jié)果
現(xiàn)在,你應(yīng)該能同時(shí)在兩個(gè)地方看到成功的結(jié)果:
- 在 Postman 里: 你會(huì)收到一個(gè) 200 OK 的響應(yīng),內(nèi)容是 {"status": "I got it!"}。
- 在你第一個(gè)命令行窗口(運(yùn)行 app.py 的那個(gè)): 你會(huì)看到打印出了 Received webhook data: {'message': 'Hello from Postman'} 的字樣。
到這里,恭喜你,已經(jīng)成功在本地跑通了第一個(gè)完整的 Webhook 流程!
05|融會(huì)貫通:用 n8n 跑一個(gè)完整的自動(dòng)化流程
理論、代碼、工具都盤完了,咱們最后回歸到那個(gè)最初的問題場景:“用 n8n 通過 webhook 發(fā)送飛書信息”。
這一下,你就能把所有知識(shí)點(diǎn)都串起來了。
? 第一步:在 n8n 里設(shè)置并“監(jiān)聽”
- 在 n8n 里新建一個(gè)工作流,第一個(gè)節(jié)點(diǎn)就選 Webhook。
- 打開節(jié)點(diǎn)設(shè)置,找到 HTTP Method,把它從默認(rèn)的 GET 改成 POST。
- 關(guān)鍵操作:點(diǎn)擊 “Listen for Test Event” 按鈕。你會(huì)看到它變成了一個(gè)等待狀態(tài)。這個(gè)動(dòng)作,就相當(dāng)于告訴 n8n:“我準(zhǔn)備好了,現(xiàn)在開始豎起耳朵等信號(hào)”。
? 第二步:復(fù)制“門牌號(hào)”
節(jié)點(diǎn)進(jìn)入監(jiān)聽狀態(tài)后,你會(huì)在 Webhook URLs 下看到一個(gè) Test URL。點(diǎn)擊它旁邊的復(fù)制按鈕。
? 第三步:用 Postman 模擬“按門鈴”
- 現(xiàn)在咱們沒有現(xiàn)成的系統(tǒng)來觸發(fā),正好把上一節(jié)的 Postman 派上用場。
- 打開 Postman,新建一個(gè) POST 請求,把剛才復(fù)制的 n8n 的 Test URL 粘貼進(jìn)去。
- 然后選擇 Body -> raw -> JSON,輸入一小段你想傳遞的 JSON 數(shù)據(jù),比如:
{
"user": "WanTu",
"action": "published article",
"title": "Webhook explained in plain language"
}
- 點(diǎn)擊 Send 發(fā)送!
? 第四步:在 n8n 里查收并連接
- 發(fā)送成功后,你切回 n8n 的界面,會(huì)發(fā)現(xiàn) Webhook 節(jié)點(diǎn)已經(jīng)“亮了”,并成功捕獲到了你從 Postman 發(fā)送的數(shù)據(jù)。
- 這就證明,你的 n8n “門鈴”工作正常,并且成功收到了“包裹”。
- 現(xiàn)在,你可以從 Webhook 節(jié)點(diǎn)后面拖出一個(gè)新的節(jié)點(diǎn),比如 Feishu (飛書),在消息內(nèi)容里引用上一步收到的數(shù)據(jù)(比如 {{$('Webhook').item.json.body}} ),實(shí)現(xiàn)自動(dòng)化通知。
寫在最后:Webhook 不是技術(shù),是“連接器”的思維
回到最初那個(gè)“疙瘩”,就是如何給一個(gè)非底層的開發(fā)者講明白 Webhook。
當(dāng)我把這些東西翻來覆去地盤了一遍后,我發(fā)現(xiàn),真正重要的,可能不是那些技術(shù)細(xì)節(jié),而是一種思維方式的轉(zhuǎn)變。
我們過去做系統(tǒng),更多的是“索取”思維,是我需要數(shù)據(jù)了,我主動(dòng)去 API 那里“拿”。
而 Webhook,代表的是一種“響應(yīng)”思維,或者叫“訂閱”思維。 我的系統(tǒng)就像一個(gè)雷達(dá),時(shí)刻“監(jiān)聽”著外部世界的特定事件。一旦事件發(fā)生,它能立刻被動(dòng)地“響應(yīng)”,觸發(fā)相應(yīng)的業(yè)務(wù)邏輯。
從“主動(dòng)索取”到“被動(dòng)響應(yīng)”,這正是現(xiàn)代自動(dòng)化系統(tǒng)、乃至智能體設(shè)計(jì)的核心心法。
它讓我們的系統(tǒng)從一個(gè)個(gè)孤島,真正地連接成了有機(jī)的、能夠?qū)崟r(shí)互動(dòng)的生態(tài)。
所以,別再被那些花里胡-哨的術(shù)語嚇倒了。說白了,它就是一種約定,讓系統(tǒng)之間能夠更聰明、更高效地“通個(gè)氣”。
當(dāng)你理解了這一點(diǎn),你就拿到了開啟高級(jí)自動(dòng)化和智能體世界的一把關(guān)鍵鑰匙。
路還很長,我們都在路上,一起探索。
# 固定資源推薦
除了閱讀文章,如果你希望有一個(gè)能隨時(shí)提問、隨時(shí)給答案的AI學(xué)習(xí)“陪練”,我把我積累的許多結(jié)構(gòu)化知識(shí),都放進(jìn)了一個(gè)可以對話的AI知識(shí)庫里。
很多朋友用過后覺得很方便,所以我把它的固定入口放在這里,希望能幫你更快地解決問題。
? 點(diǎn)擊直達(dá):萬涂幻象AI創(chuàng)行社區(qū)知識(shí)庫
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.