要将 RSS 更新发送到 Webhook,需要有工具定期检查订阅源、发现新条目,并通过 HTTP POST 将每条新内容发送到你的 URL。 Feeder 的「发布到 Webhook」规则可同时处理任意数量的订阅源,并内置关键词筛选和失败重试。Zapier、Make、IFTTT 和 n8n 等自动化工具也能实现这一功能,你还可以在自己的服务器上运行一段简短脚本。
将 RSS 更新发送到 Webhook,有哪些方式?
| 方式 | 适用场景 | 需要了解的信息 |
|---|---|---|
| Feeder 的「发布到 Webhook」规则 | 处理多个订阅源、按关键词筛选,并让所有订阅源使用同一种 JSON 格式 | 属于 Feeder Professional。详情见下文。 |
| Zapier、Make、IFTTT 或 n8n | 无需编写代码,将每条内容转发到其他应用 | 需要自行映射字段。各工具有自己的套餐和限制。 |
| 脚本 | 希望完全掌控流程的开发者 | 你需要自行托管脚本、设置定时任务,并跟踪已发送的内容。 |
Feeder 的「发布到 Webhook」规则如何运作?
「发布到 Webhook」是 Feeder 规则中的一种操作。创建规则后,在「要执行什么操作?」下选择 发布到 Webhook,粘贴你的终端 URL,然后选择要监控的订阅源、文件夹或所有订阅源。如果只想发送部分帖子,可以添加关键词。此后,Feeder 会将每条符合条件的新帖子发送到你的 URL。
使用 Webhook 构建自己的集成一文附有完整步骤和截图;功能发布文章展示了规则的实际效果。本页信息来自发送 Webhook 的代码。
Feeder 会向我的 Webhook 发送什么内容?
每条帖子都会对应一个 HTTP POST 请求,请求正文为 JSON,并包含以下请求头:
POST /hooks/rss HTTP/1.1
Content-Type: application/json
User-Agent: Feeder-Webhooks/1.0
X-Feeder-Signature: sha256=<HMAC-SHA256 of the body, in hex>
下面是 Feeder 博客中一条帖子的请求正文示例,其中 content 已缩短。Feeder 实际发送时会将正文压成一行,这里为了便于阅读而换行显示。
{
"version": "2023-06-26",
"message_id": "3f1c9a52-7e4b-4d0a-9b6e-2c8d51f0a7e4",
"post": {
"id": "aff2424a-abc9-11f1-afb3-1a21cf3a468a",
"title": "Feed your AI",
"url": "https://feeder.co/blog/1208-feed-your-ai",
"published": "2026-09-08T20:19:59Z",
"content": "\u003cp\u003eWith Feeder's MCP server, you can connect Feeder to your AI client of choice.\u003c/p\u003e",
"audio_url": null,
"image_url": "https://uploads.feedercdn.com/8XSXZN92WHeb2d17f3440d-feedyourai-1024x538.png"
},
"feed": {
"id": "21f058e947",
"source_url": "https://feeder.co/blog.rss",
"public_url": "https://feeder.co/blog",
"title": "Feeder.co",
"favicon": "https://icons.feedercdn.com/feeder.co"
}
}
| 字段 | 内容 |
|---|---|
version | 格式版本:2023-06-26。 |
message_id | 每条消息都有一个新 ID。同一条消息重试时 ID 保持不变,因此你可以跳过重复消息。 |
post.id | Feeder 为帖子分配的 ID。 |
post.title | 帖子的标题。 |
post.url | 网站上该帖子的链接。 |
post.published | 帖子的发布时间,格式为 RFC 3339 时间戳;也可能为 null。 |
post.content | 订阅源提供的 HTML 格式帖子内容,可能是全文,也可能是摘要。 |
post.audio_url | 帖子附带的 MP3 文件地址,例如播客单集;也可能为 null。 |
post.image_url | 帖子附带的图片地址;如果没有,则使用内容中的第一张图片;也可能为 null。 |
feed.id | Feeder 为订阅源分配的短 ID。 |
feed.source_url | 订阅源地址。 |
feed.public_url | 该订阅源所属网站的网址。 |
feed.title | 订阅源标题。 |
feed.favicon | 网站图标的网址。 |
在 content 中,字符 <、> 和 & 会分别以 \u003c、\u003e 和 \u0026 的形式传输。这是有效的 JSON,任何 JSON 解析器都会将它们还原为 HTML。
Webhook 何时触发?
- 仅针对新帖子。规则会处理保存规则后 Feeder 发现的帖子,不会发送你已有的帖子。
- 每条帖子发送一次。每条符合条件的帖子都会单独发送一个请求,Feeder 不会将多条帖子打包发送。如果网站之后编辑了帖子,且 Feeder 检测到更改,也会发送编辑后的版本。
- 在订阅源下次检查后立即发送。Professional 默认每 10 分钟检查一次订阅源,你也可以将订阅源设置为每分钟更新一次。请参阅Feeder 多久检查一次订阅源。
- 仅发送符合条件的帖子。设置关键词后,只会发送匹配的帖子;不设置关键词时,则会发送所有新帖子。被过滤帖子或过滤重复项规则隐藏的帖子不会发送。
如果我的终端无法访问,会发生什么?
Feeder 最多等待 60 秒以获取响应。返回 2xx 状态码即视为发送成功。如果终端返回错误,例如 404 或 500,或者完全没有响应,Feeder 会继续重试,最多再试 8 次:
| 尝试次数 | 距离上一次发送的间隔 |
|---|---|
| 2 | 5 秒 |
| 3 | 30 秒 |
| 4 | 1 分钟 |
| 5 | 5 分钟 |
| 6 | 10 分钟 |
| 7 | 30 分钟 |
| 8 | 30 分钟 |
| 9 | 30 分钟 |
第九次尝试后,也就是首次发送后约 1 小时 47 分钟,Feeder 会放弃发送这条帖子。每次失败都会记录在规则的错误日志中:打开规则并选择打开错误日志。如果重试等待期间你更改了规则中的 URL,后续重试会发送到新 URL。发送测试消息只会发送一次测试,不会重试。
我的终端应该如何处理请求?
- 尽快响应。先返回 2xx 状态码,再执行耗时操作,以确保响应时间远低于 60 秒。
- 跳过重复内容。如果服务器处理了消息,但响应太迟,重试时会再次收到该消息。请保存已处理过的
message_id或post.id值。 - 使用最终地址。URL 必须包含路径,例如
https://example.com/hooks/rss,并指向公共互联网中的服务器。Feeder 不会向本地或私有网络地址发送请求。也请避免重定向:遇到 301、302 或 303 重定向后,请求会变为 GET,且不再包含 JSON 正文。 - 验证签名。任何知道你 URL 的人都可以向其发送请求,因此只应信任带有有效
X-Feeder-Signature的请求。下一节将说明验证方法。
如何确认请求来自 Feeder?
Feeder 会使用规则的 Webhook 密钥对每个请求签名。要找到密钥,请打开规则,启用高级选项,复制Webhook 密钥,然后保存规则。X-Feeder-Signature 请求头的值以 sha256= 开头,后面是使用该密钥对请求正文计算出的 HMAC-SHA256 十六进制值。
要验证签名,请在解析 JSON 之前,对原始正文计算相同的 HMAC,并以恒定时间比较两者。Python 示例:
import hashlib, hmac
def from_feeder(body, header, secret):
expected = "sha256=" + hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, header or "")
这里的 body 是字节形式的请求正文。如果 from_feeder 返回 False,请拒绝该请求。重试时使用规则当前的密钥签名,因此更改密钥后,待重试的请求也会使用新密钥。
Feeder 能否通过 Webhook 发送摘要?
不能。「发布到 Webhook」会在 Feeder 发现帖子后,立即为每条帖子发送一个请求。要生成摘要,可以采用以下三种方式:
- 在自己的系统中批量处理。将终端收到的每条帖子保存下来,再按计划发送你自己的摘要。
- 使用电子邮件摘要。在 Plus 和 Professional 套餐中,Feeder 可以每天、每周或每月通过电子邮件发送你所选订阅源的摘要。请参阅接收新帖通知。
- 发布订阅源。在 Professional 套餐中,可将文件夹或集合发布为 RSS 或 JSON 订阅源,再让自己的工具按计划读取。请参阅如何将帖子导出为 RSS 和 JSON 订阅源。
如何使用 Zapier、Make、IFTTT 或 n8n 将 RSS 更新发送到 Webhook?
每种工具都可以将 RSS 触发器与 HTTP 操作配对使用。我们于 2026 年 9 月 28 日在各工具的官方网站核实了以下名称:
| 工具 | 触发器 | 操作 | 需要了解的信息 |
|---|---|---|---|
| Zapier | RSS by Zapier:Feed 中的新条目,或多个 Feed 中的新条目 | Webhooks by Zapier:POST | Webhooks by Zapier 是高级应用,Zapier 仅在付费套餐中提供。 |
| Make | RSS:监控 RSS Feed 条目 | HTTP:发起请求 | RSS 模块支持读取 RSS 和 Atom 订阅源。 |
| IFTTT | RSS Feed:Feed 中的新条目 | Webhooks:发起 Web 请求 | IFTTT 免费套餐每小时检查一次订阅源,Pro 和 Pro+ 每 5 分钟检查一次。 |
| n8n | RSS Feed Trigger 节点 | 使用 POST 方法的 HTTP Request 节点 | 你可以在轮询时间中选择检查订阅源的频率。 |
如果你已经在使用这些工具,它们是最快捷的选择。你也可以将它们与 Feeder 结合使用:将「发布到 Webhook」规则指向 Zapier 的捕获 Hook触发器,或 n8n 的Webhook节点。这样 Feeder 会负责监控订阅源和筛选帖子,后续流程则由你的工作流处理。
如何通过脚本将 RSS 更新发送到 Webhook?
下面的 Python 脚本会将一个订阅源中的每条新内容发送到你的 Webhook。脚本会在 seen.txt 中记录已发送的内容,因此每条内容只会发送一次。首次运行时,会发送当时订阅源中的所有条目。
import json, pathlib, urllib.request
import feedparser # pip install feedparser
FEED_URL = "https://example.com/feed.xml"
WEBHOOK_URL = "https://example.com/hooks/rss"
seen_file = pathlib.Path("seen.txt")
seen = set(seen_file.read_text().split()) if seen_file.exists() else set()
for entry in reversed(feedparser.parse(FEED_URL).entries):
key = entry.get("id") or entry.get("link")
if not key or key in seen:
continue
payload = {"title": entry.get("title"), "url": entry.get("link"), "published": entry.get("published")}
request = urllib.request.Request(WEBHOOK_URL, data=json.dumps(payload).encode(),
headers={"Content-Type": "application/json"})
urllib.request.urlopen(request, timeout=30)
seen.add(key)
seen_file.write_text("\n".join(seen))
运行脚本需要 Python 3 和 feedparser 程序包(pip install feedparser)。请设置定时任务运行脚本,例如使用 cron 每 15 分钟运行一次:*/15 * * * * cd /path/to/folder && python3 rss_to_webhook.py。如果终端返回错误,脚本会停止,下次运行时会再次尝试发送同一条内容。
常见问题
可以通过「发布到 Webhook」将 RSS 更新发送到 Slack、Teams 或 Discord 的 Webhook 吗?
不能直接发送。Feeder 使用自己的 JSON 格式,而这些应用需要的是其他消息格式。你可以改用 Feeder 的发布到 Slack、发布到 Microsoft Teams或发布到 Discord规则,也可以在中间接入 Zapier、Make 或 n8n。
哪个 Feeder 套餐包含 Webhook?
「发布到 Webhook」属于 Professional。用于筛选、加星标或收集帖子的规则也可在 Plus 中使用。
Webhook 会包含完整文章吗?
Webhook 包含订阅源发布的内容。如果订阅源提供全文,content 中就是完整文章;如果订阅源只提供摘要,其中就只有摘要。
保存规则之前,可以先测试我的终端吗?
可以。发送测试消息会从你的订阅源中选取一条真实帖子,发送到你的 URL。你的账户中至少需要有一个包含帖子的订阅源。
试用 Feeder
Feeder 是一款适用于网页、iOS 和 Android 的 RSS 阅读器,也提供 Chrome、Firefox 和 Edge 浏览器扩展。免费套餐最多可关注 200 个订阅源,无广告,订阅源更新频率最快为每 30 分钟一次。Plus 最多可关注 2,500 个订阅源,更新频率最快为每 5 分钟一次,并提供电子邮件摘要。