常见问题与故障排除
常见问题以及如何调试最频繁出现的问题,大致按照出现频率的顺序排列。
通用问题
为什么页面发生更改时我没有收到提醒?
最常见的原因如下(按顺序排列):
- 根据您的描述,LLM 认为该变更不具有意义。 打开监控器的近期检查记录 — 您会看到差异已被处理,但被归类为不值得发出提醒。请使您的描述更加精准(参见 过滤器与描述)。
- 页面更改并没有发生在我们提取的部分中。 我们会在生成哈希值之前剥离样板内容(导航栏、页脚、广告)。如果更改发生在被剥离的内容中,我们将永远无法看到它。
- 监控器已暂停。 检查监控器详情页面 — 在连续 10 次检查失败后自动暂停是一个经常让人感到意外的原因。
- 渠道发送失败。 交付可能会失败(webhook URL 错误、电子邮件收件人未验证、接收器返回 HTTP 错误)。交付只会尝试一次,没有自动重试机制。
为什么我会收到有关无意义变更的提醒?
您的描述可能太模糊,或者没有提及要忽略什么。请对其进行编辑,针对造成噪音的模式添加一个明确的“忽略 X”子句。此更改将应用于下一次检查。
提醒的实时性如何?
一旦检查检测到变更,提醒会在几秒钟内排入发送队列。端到端的时间(从页面更改到您看到提醒)取决于监控器被检查的频率,而这个频率是自适应的 — 频繁变动的页面会更频繁地被检查,较高级别的计划将获得更高的调度优先级。如果您需要强制进行即时检查,请使用 Check now (立即检查) 功能。
你们会存储页面内容吗?
我们会按每次检查存储提取的文本和渲染的截图,并根据您计划的保留窗口期进行保留(该期限因计划而异)。变更摘要会与每次检测到的变更一起保留。截图由 Cloudflare R2 提供支持。
抓取与屏蔽
监控器持续失败,显示“blocked (已屏蔽)”。
目标站点检测到了我们的请求并对其进行了屏蔽。抓取器将自动升级为使用无头浏览器 (headless browser),然后升级为使用住宅代理 (residential proxy),但有些站点会屏蔽这三种方式。应对方法:
- 改为监控目标站点发布的 API 或信息流 (
/feed.xml,/api/...) — 这些通常不受保护。 - 如果目标站点有站点地图 (sitemap),请监控它 — 站点地图往往能保持可访问状态。
- 对于受强认证保护的站点,请运行您自己的集成,在它们内部状态发生变化时,向 Page Deltas webhook 发送 POST 请求。
监控器间歇性地返回 403/429 错误。
这表明目标站点正在限流或屏蔽自动请求。我们的抓取器已经从普通 HTTP 升级到了无头浏览器,然后再升级到了住宅代理;如果某个页面仍然间歇性地进行屏蔽,那么监控目标站点发布的 RSS、API 或站点地图通常比监控渲染后的页面更可靠。
API 与集成
我该如何轮换 (rotate) API 密钥?
创建一个新密钥,将其替换到您的客户端中,然后删除旧密钥。密钥是相互独立的 — 签发新密钥不会使现有密钥失效。
Webhook 验证持续失败。
需要检查的三件事:
- 您是否对原始请求体字节 (raw body bytes) 进行了哈希处理,而不是对解析后的 JSON?自动解析 JSON 的框架经常会丢弃原始字节。
- 您是否仅对原始请求体进行了签名 — 没有时间戳,也没有分隔符。标头信息为
X-Signature: sha256=<hex>。 - 您是否使用了恒定时间比较法(例如在 Node.js 中使用
timingSafeEqual,在 Python 中使用hmac.compare_digest)。
帐户
我可以更改我的组织名称吗?
组织名称是在您注册时设置的(从您的电子邮件衍生而来),目前不支持自助修改。整个应用程序中的链接都使用不透明的 ID,因此应用程序中没有任何内容依赖于该名称。如果您确实需要更改它,请发邮件给客户支持。
我该如何导出我的数据?
目前还没有一键导出功能。您可以通过 API 提取您的监控器及其检测到的变更记录(请参阅 API 参考),或者发送电子邮件给客户支持,我们将竭诚为您提供帮助。