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. 如果问题持续,请联系支持

祝您使用愉快!🚀