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 是否可访问
- 检查通知设置是否已启用
- 确保阈值配置正确
- 如果问题持续,请联系支持
祝您使用愉快!🚀