Webhook 設定ガイド

Webhook とは?

Webhook を使うと、監視対象のコンテンツが設定したしきい値に達したときに、SNSTracker があなたのサーバーやアプリケーションへ自動的に通知を送信できます。たとえば、動画の再生回数が大きく増加した場合や、チャンネルのフォロワーが増えた場合に、SNSTracker が webhook URL に通知を送ります(通常 1 分以内)。

ステップ・バイ・ステップ設定ガイド

Step 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 を返す

Step 2: SNSTracker に Webhook ターゲットを追加する

  1. Collections ページに移動

    • SNSTracker にログイン
    • 左サイドバーの Track セクションから Collections をクリック
    • もしくは直接 /dashboard/collections にアクセス
  2. Manage Notify Targets を開く

    • Collections ページで 「Manage Notify Targets」 ボタンをクリック
    • 通知ターゲット管理ダイアログが開きます
  3. 新しいターゲットを追加

    • 「Add Target」 ボタンをクリック
    • 新しい通知ターゲット作成用のダイアログが表示されます
  4. Webhook タイプを選択

    • ダイアログの 「Type」 ドロップダウンを探します
    • 「Webhook」 を選択
  5. Webhook URL を入力

    • 「Webhook URL」 フィールドにエンドポイント URL を入力
    • 例: https://api.yourcompany.com/webhook
    • 重要: URL は https:// で始まる必要があります
  6. コメントを追加(任意)

    • 「Comment」 フィールドに、この webhook の用途メモを追加できます
    • 例: 「TikTok 監視用 本番 webhook」
    • 最大 50 文字
  7. 署名キーを設定(任意・本番推奨)

    • 「Extra」 フィールドに署名キーの JSON を追加できます:
    {
      "signature_key": "your-secret-key-here"
    }
    • このキーはリクエストの真正性検証に使用されます
    • 未指定の場合、SNSTracker は API キーまたは webhook URL を署名キーとして使用します
  8. Webhook ターゲットを保存

    • 「Save」 ボタンをクリック
    • Webhook ターゲットが作成され、利用可能になります

Step 3: Collection で通知ルールを設定する

  1. Collection の設定を開く

    • Collections ページに戻る
    • 通知を設定したい Collection を見つける
    • Edit ボタンをクリック(または Collection 名をクリックして設定を開く)
  2. Feed Notify を有効化(動画/投稿用)

    • 設定内の 「Feed Notify」 セクションを探す
    • 「Enable Notifications」 スイッチを ON にする
    • 「Notify Targets」 ドロップダウンから webhook ターゲットを選択
    • 監視する 「Metrics」 を選択:
      • 再生回数
      • エンゲージメント(いいね + コメント + シェア)
    • 「Threshold」 を設定:
      • 指定数(例: 1000)増えたときに通知
      • 0 にすると、更新ごとに通知
    • 「Save」 または 「Update」 をクリック
  3. Channel Notify を有効化(アカウント用)

    • 同じ設定内の 「Channel Notify」 セクションを探す
    • 「Enable Notifications」 スイッチを ON にする
    • 「Notify Targets」 ドロップダウンから webhook ターゲットを選択
    • 監視する 「Metrics」 を選択:
      • フォロワー
      • フォロー数
      • いいね
    • 「Threshold」 を設定:
      • 指定数(例: 500)増えたときに通知
      • 0 にすると、更新ごとに通知
    • 「Save」 または 「Update」 をクリック
  4. 設定を確認

    • Webhook ターゲットと通知ルールの両方が保存されていることを確認
    • これで設定したしきい値に達すると通知が届きます

Step 4: Webhook をテストする

  1. テストサービスを使う(初回推奨)

    • webhook.site にアクセス
    • 提供されるユニーク URL をコピー(例: https://webhook.site/unique-id)
    • Step 2 でこの URL を webhook URL として使用
    • しきい値 0 の通知を設定(変化があれば通知)
    • SNSTracker のチェックを待つ
    • webhook.site で通知が届くか確認
  2. エンドポイントのログを確認

    • 自社サーバー利用の場合、サーバーログを確認
    • SNSTracker からの POST リクエストを探す
    • リクエスト本文に期待するデータが含まれているか確認
  3. 通知フォーマットを確認

    • 通知は以下の JSON 形式:
      • title: 通知の説明
      • type: "feed" または "channel"
      • timestamp: 通知送信時刻
      • data: 通知対象の配列

Webhook 通知の送信方法

SNSTracker は バッチング機構 を使って webhook 配信を最適化します:

  • 即時検知:監視リソース(feed または channel)が更新され、しきい値を満たすと即座に通知対象になります。

  • 1 分バッチウィンドウ:個別送信せず、1 分間の間に該当した通知をまとめて蓄積します。

  • まとめて送信:1 分ごとに、該当通知を 1 つの webhook リクエストにまとめて送信します。

例:

  • 10:00:15 に Feed A がしきい値到達 → 通知対象
  • 10:00:45 に Feed B がしきい値到達 → 通知対象
  • 10:01:00 に Feed A と Feed B を 1 つの webhook で送信

メリット:

  • エンドポイントへの HTTP リクエスト数を削減
  • 効率向上・サーバー負荷軽減
  • 急激な変化による通知スパムを防止
  • バッチ期間内の通知はすべて data 配列に含まれる

注意:しきい値到達から webhook 送信までの最大遅延は 1 分です。ほぼリアルタイム通知を保ちつつ効率を確保します。

受信するデータ

通知がトリガーされると、以下のような JSON を含む POST リクエストを受け取ります:

{
  "title": "SNSTracker Notification: Feed Views Increased",
  "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 通知データ項目

  • 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: エンゲージメント増加分(いいね + コメント + シェア)

Channel 通知データ項目

  • id: チャンネルの一意 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 リクエストで手動テスト
  2. 通知設定を確認

    • Collection で通知が有効になっているか
    • Webhook ターゲットが選択されているか
    • しきい値が正しいか
  3. エンドポイントの状態を確認

    • エンドポイントが稼働し、アクセス可能か
    • サーバーログで受信リクエストを確認
    • 成功ステータス(200–299)が返るか確認

よくある問題

Issue: "Webhook URL already exists"
Solution: Webhook URL はチームごとに 1 回しか使えません。別の URL を使うか、既存のターゲットを編集してください。

Issue: 通知が発火しない
Solution:

  • テスト用にしきい値を 0 に設定(変化があれば通知)
  • SNSTracker がコンテンツをチェックするのを待つ(定期チェック)
  • 実際にしきい値分の変化があったか確認

Issue: タイムアウトエラー
Solution: エンドポイントは 30 秒以内に応答する必要があります。応答時間を最適化してください。

ヘルプが必要ですか?

問題が発生した場合:

  1. webhook URL にアクセスできることを確認
  2. 通知設定が有効か確認
  3. しきい値が正しく設定されているか確認
  4. 解決しない場合はサポートに連絡

快適なトラッキングを! 🚀