Webhook 設定教學

什麼是 Webhook?

Webhook 允許 SNSTracker 在監控的內容達到您設定的閾值時,自動向您的伺服器或應用程式發送通知。例如,當影片觀看數大幅增加,或頻道獲得新粉絲時,SNSTracker 會透過 webhook URL 向您發送通知(通常在 1 分鐘內)。

詳細設定步驟

第一步:準備您的 Webhook 端點

在 SNSTracker 中設定之前,您需要準備好一個 webhook 端點。這是一個可以接收 HTTP POST 請求的 URL。

您的 webhook 端點可以選擇:

  1. 您自己的伺服器:https://api.yourcompany.com/webhook
  2. 雲端函式:AWS Lambda、Google Cloud Functions、Azure Functions 等
  3. 自動化平台:Zapier、Make.com、n8n 等
  4. 測試服務:webhook.site(僅用於測試)

要求:

  • 必須使用 HTTPS(URL 以 https:// 開頭)
  • 必須接受 POST 請求
  • 成功時應回傳 HTTP 200-299 狀態碼

第二步:在 SNSTracker 中新增 Webhook 目標

  1. 進入集合頁面

    • 登入 SNSTracker
    • 點擊左側邊欄中的 "集合"(在 Track 區段下)
    • 或直接造訪:/dashboard/collections
  2. 開啟管理通知目標

    • 在集合頁面上,找到並點擊 "管理通知目標" 按鈕
    • 這將開啟通知目標管理對話框
  3. 新增新目標

    • 點擊 "新增目標" 按鈕
    • 將出現建立新通知目標的對話框
  4. 選擇 Webhook 類型

    • 在對話框中,找到 "類型" 下拉選單
    • 從選項中選擇 "Webhook"
  5. 輸入 Webhook URL

    • 在 "Webhook URL" 欄位中,輸入您的 webhook 端點 URL
    • 範例:https://api.yourcompany.com/webhook
    • 重要:URL 必須以 https:// 開頭
  6. 新增備註(可選)

    • 在 "備註" 欄位中,您可以新增一段說明來記住這個 webhook 的用途
    • 範例:"用於 TikTok 監控的正式環境 webhook"
    • 最多 50 個字元
  7. 設定簽名金鑰(可選,正式環境建議)

    • 在 "額外資訊" 欄位中,您可以新增一個包含簽名金鑰的 JSON 物件:
    {
      "signature_key": "your-secret-key-here"
    }
    • 此金鑰將用於驗證請求的真實性
    • 若不提供,SNSTracker 將使用您的 API 金鑰或 webhook URL 作為簽名金鑰
  8. 儲存 webhook 目標

    • 點擊 "儲存" 按鈕
    • 您的 webhook 目標現在已建立並可使用

第三步:在集合中設定通知規則

  1. 開啟集合設定

    • 返回集合頁面
    • 找到您要設定通知的集合
    • 點擊 編輯 按鈕(或點擊集合名稱開啟設定)
  2. 啟用動態通知(用於影片/貼文)

    • 在集合設定中,找到 "動態通知" 區段
    • 將 "啟用通知" 開關切換到開啟
    • 從 "通知目標" 下拉選單中選擇您的 webhook 目標
    • 選擇要監控的 "指標":
      • 觀看數
      • 互動數(按讚 + 留言 + 分享)
    • 設定 "閾值" 值:
      • 輸入一個數字(例如:1000)表示當指標增加這個數量時通知
      • 設為 0 表示每次成功刷新後都通知
    • 點擊 "儲存" 或 "更新"
  3. 啟用頻道通知(用於帳號)

    • 在同一集合設定中,找到 "頻道通知" 區段
    • 將 "啟用通知" 開關切換到開啟
    • 從 "通知目標" 下拉選單中選擇您的 webhook 目標
    • 選擇要監控的 "指標":
      • 粉絲數
      • 關注數
      • 按讚數
    • 設定 "閾值" 值:
      • 輸入一個數字(例如:500)表示當指標增加這個數量時通知
      • 設為 0 表示每次成功刷新後都通知
    • 點擊 "儲存" 或 "更新"
  4. 驗證設定

    • 確保 webhook 目標和通知規則都已儲存
    • 現在,當達到設定的閾值時,您的 webhook 將收到通知

第四步:測試您的 Webhook

  1. 使用測試服務(首次設定建議)

    • 造訪 webhook.site
    • 複製提供的唯一 URL(例如:https://webhook.site/unique-id)
    • 在第二步中使用此 URL 作為您的 webhook URL
    • 設定一個閾值為 0 的通知(以便在任何變化時觸發)
    • 等待 SNSTracker 檢查您的內容
    • 檢查 webhook.site 以查看是否收到了通知
  2. 檢查您的端點日誌

    • 若使用您自己的伺服器,檢查伺服器日誌
    • 尋找來自 SNSTracker 的傳入 POST 請求
    • 驗證請求本文包含預期的資料
  3. 驗證通知格式

    • 通知應該是一個包含以下內容的 JSON 物件:
      • title:通知的描述
      • type:"feed" 或 "channel"
      • timestamp:通知發送的時間
      • data:觸發通知的項目陣列

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 請求標頭中包含簽名以驗證請求的真實性。簽名金鑰按以下方式決定:

  1. Extra 欄位中的 signature_key(若提供)
  2. 您的第一個有效 API 金鑰(若未設定 signature_key)
  3. 您的 webhook URL(作為備援)

對於正式環境,建議驗證簽名以確保請求是真實的。

故障排除

Webhook 未收到通知

  1. 檢查 webhook URL

    • 驗證 URL 是否正確且可存取
    • 確保它以 https:// 開頭
    • 使用 POST 請求手動測試 URL
  2. 檢查通知設定

    • 驗證您的集合中已啟用通知
    • 檢查是否選擇了 webhook 目標
    • 確保閾值設定正確
  3. 檢查端點狀態

    • 確保您的端點正在運行且可存取
    • 檢查伺服器日誌中的傳入請求
    • 驗證您的端點回傳成功狀態(200-299)

常見問題

問題:"Webhook URL 已存在"
解決方案:每個 webhook URL 在每個團隊中只能使用一次。使用不同的 URL 或編輯現有目標。

問題:通知未觸發
解決方案:

  • 將閾值設定為 0 進行測試(任何變化都通知)
  • 等待 SNSTracker 檢查您的內容(檢查會定期進行)
  • 驗證您的內容確實按閾值數量發生了變化

問題:逾時錯誤
解決方案:您的端點必須在 30 秒內回應。最佳化您端點的回應時間。

需要幫助?

如果您遇到問題:

  1. 驗證您的 webhook URL 是否可存取
  2. 檢查通知設定是否已啟用
  3. 確保閾值設定正確
  4. 若問題持續,請聯絡支援

祝您使用愉快!🚀