Webhook 設定教學
什麼是 Webhook?
Webhook 允許 SNSTracker 在監控的內容達到您設定的閾值時,自動向您的伺服器或應用程式發送通知。例如,當影片觀看數大幅增加,或頻道獲得新粉絲時,SNSTracker 會透過 webhook URL 向您發送通知(通常在 1 分鐘內)。
詳細設定步驟
第一步:準備您的 Webhook 端點
在 SNSTracker 中設定之前,您需要準備好一個 webhook 端點。這是一個可以接收 HTTP POST 請求的 URL。
您的 webhook 端點可以選擇:
- 您自己的伺服器:
https://api.yourcompany.com/webhook - 雲端函式:AWS Lambda、Google Cloud Functions、Azure Functions 等
- 自動化平台:Zapier、Make.com、n8n 等
- 測試服務:webhook.site(僅用於測試)
要求:
- 必須使用 HTTPS(URL 以
https://開頭) - 必須接受 POST 請求
- 成功時應回傳 HTTP 200-299 狀態碼
第二步:在 SNSTracker 中新增 Webhook 目標
-
進入集合頁面
- 登入 SNSTracker
- 點擊左側邊欄中的 "集合"(在 Track 區段下)
- 或直接造訪:
/dashboard/collections
-
開啟管理通知目標
- 在集合頁面上,找到並點擊 "管理通知目標" 按鈕
- 這將開啟通知目標管理對話框
-
新增新目標
- 點擊 "新增目標" 按鈕
- 將出現建立新通知目標的對話框
-
選擇 Webhook 類型
- 在對話框中,找到 "類型" 下拉選單
- 從選項中選擇 "Webhook"
-
輸入 Webhook URL
- 在 "Webhook URL" 欄位中,輸入您的 webhook 端點 URL
- 範例:
https://api.yourcompany.com/webhook - 重要:URL 必須以
https://開頭
-
新增備註(可選)
- 在 "備註" 欄位中,您可以新增一段說明來記住這個 webhook 的用途
- 範例:"用於 TikTok 監控的正式環境 webhook"
- 最多 50 個字元
-
設定簽名金鑰(可選,正式環境建議)
- 在 "額外資訊" 欄位中,您可以新增一個包含簽名金鑰的 JSON 物件:
{ "signature_key": "your-secret-key-here" }- 此金鑰將用於驗證請求的真實性
- 若不提供,SNSTracker 將使用您的 API 金鑰或 webhook URL 作為簽名金鑰
-
儲存 webhook 目標
- 點擊 "儲存" 按鈕
- 您的 webhook 目標現在已建立並可使用
第三步:在集合中設定通知規則
-
開啟集合設定
- 返回集合頁面
- 找到您要設定通知的集合
- 點擊 編輯 按鈕(或點擊集合名稱開啟設定)
-
啟用動態通知(用於影片/貼文)
- 在集合設定中,找到 "動態通知" 區段
- 將 "啟用通知" 開關切換到開啟
- 從 "通知目標" 下拉選單中選擇您的 webhook 目標
- 選擇要監控的 "指標":
- 觀看數
- 互動數(按讚 + 留言 + 分享)
- 設定 "閾值" 值:
- 輸入一個數字(例如:1000)表示當指標增加這個數量時通知
- 設為 0 表示每次成功刷新後都通知
- 點擊 "儲存" 或 "更新"
-
啟用頻道通知(用於帳號)
- 在同一集合設定中,找到 "頻道通知" 區段
- 將 "啟用通知" 開關切換到開啟
- 從 "通知目標" 下拉選單中選擇您的 webhook 目標
- 選擇要監控的 "指標":
- 粉絲數
- 關注數
- 按讚數
- 設定 "閾值" 值:
- 輸入一個數字(例如:500)表示當指標增加這個數量時通知
- 設為 0 表示每次成功刷新後都通知
- 點擊 "儲存" 或 "更新"
-
驗證設定
- 確保 webhook 目標和通知規則都已儲存
- 現在,當達到設定的閾值時,您的 webhook 將收到通知
第四步:測試您的 Webhook
-
使用測試服務(首次設定建議)
- 造訪 webhook.site
- 複製提供的唯一 URL(例如:
https://webhook.site/unique-id) - 在第二步中使用此 URL 作為您的 webhook URL
- 設定一個閾值為 0 的通知(以便在任何變化時觸發)
- 等待 SNSTracker 檢查您的內容
- 檢查 webhook.site 以查看是否收到了通知
-
檢查您的端點日誌
- 若使用您自己的伺服器,檢查伺服器日誌
- 尋找來自 SNSTracker 的傳入 POST 請求
- 驗證請求本文包含預期的資料
-
驗證通知格式
- 通知應該是一個包含以下內容的 JSON 物件:
title:通知的描述type:"feed"或"channel"timestamp:通知發送的時間data:觸發通知的項目陣列
- 通知應該是一個包含以下內容的 JSON 物件:
Webhook 通知的發送機制
SNSTracker 使用批次處理機制來最佳化 webhook 的發送效率:
-
即時偵測:當監控的資源(動態或頻道)成功刷新並符合您設定的通知閾值時,會立即被標記為待通知狀態。
-
1 分鐘批次窗口:系統不會立即發送單一通知,而是在 1 分鐘的時間窗口內累積所有符合條件的通知。
-
合併發送:在每個 1 分鐘窗口結束時,該時間段內的所有通知會被合併成一條 webhook 請求一起發送。
範例情境:
- 10:00:15,動態 A 達到閾值 → 已標記
- 10:00:45,動態 B 達到閾值 → 已標記
- 10:01:00,動態 A 和動態 B 會在一條 webhook 請求中一起發送
優勢:
- 減少發送到您端點的 HTTP 請求數量
- 提升效率並降低伺服器負載
- 避免資料快速變化時產生通知轟炸
- 批次時間段內的所有通知都會包含在
data陣列中
注意:從資源達到閾值到 webhook 發送的最大延遲為 1 分鐘。這確保了近乎即時的通知體驗,同時保持系統的高效運作。
您將收到什麼資料?
當觸發通知時,您將收到一個包含 JSON 資料的 POST 請求,如下所示:
{
"title": "SNSTracker Notification: 動態觀看數增加",
"type": "feed",
"timestamp": "2024-01-15T10:30:00Z",
"data": [
{
"feed_id": "feed-123",
"url": "https://www.tiktok.com/@user/video/123",
"platform_name": "TikTok",
"view_count": 10000,
"like_count": 2000,
"changed_views": 1000,
"changed_engagement": 50
}
]
}動態通知資料欄位
feed_id:唯一識別碼url:影片/貼文的直接連結platform_name:平台(TikTok、Instagram 等)title:內容標題description:內容描述author_username:創作者的使用者名稱author_nickname:創作者的顯示名稱view_count:總觀看數like_count:總按讚數comment_count:總留言數share_count:總分享數changed_views:自上次檢查以來觀看數的增加changed_engagement:互動數增加(按讚 + 留言 + 分享)
頻道通知資料欄位
id:頻道唯一識別碼channel_url:頻道/個人資料的直接連結platform_name:平台名稱nickname:顯示名稱username:使用者名稱/帳號followers:總粉絲數followings:總關注數likes:總按讚數changed_followers:自上次檢查以來粉絲數的增加changed_followings:自上次檢查以來關注數的增加changed_likes:自上次檢查以來按讚數的增加
安全性:簽名驗證
SNSTracker 在 X-Signature 請求標頭中包含簽名以驗證請求的真實性。簽名金鑰按以下方式決定:
- Extra 欄位中的
signature_key(若提供) - 您的第一個有效 API 金鑰(若未設定 signature_key)
- 您的 webhook URL(作為備援)
對於正式環境,建議驗證簽名以確保請求是真實的。
故障排除
Webhook 未收到通知
-
檢查 webhook URL
- 驗證 URL 是否正確且可存取
- 確保它以
https://開頭 - 使用 POST 請求手動測試 URL
-
檢查通知設定
- 驗證您的集合中已啟用通知
- 檢查是否選擇了 webhook 目標
- 確保閾值設定正確
-
檢查端點狀態
- 確保您的端點正在運行且可存取
- 檢查伺服器日誌中的傳入請求
- 驗證您的端點回傳成功狀態(200-299)
常見問題
問題:"Webhook URL 已存在"
解決方案:每個 webhook URL 在每個團隊中只能使用一次。使用不同的 URL 或編輯現有目標。
問題:通知未觸發
解決方案:
- 將閾值設定為 0 進行測試(任何變化都通知)
- 等待 SNSTracker 檢查您的內容(檢查會定期進行)
- 驗證您的內容確實按閾值數量發生了變化
問題:逾時錯誤
解決方案:您的端點必須在 30 秒內回應。最佳化您端點的回應時間。
需要幫助?
如果您遇到問題:
- 驗證您的 webhook URL 是否可存取
- 檢查通知設定是否已啟用
- 確保閾值設定正確
- 若問題持續,請聯絡支援
祝您使用愉快!🚀