如何将 RSS 更新发送到 Webhook

更新于2026年10月13日 阅读需 3 分钟

要将 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.idFeeder 为帖子分配的 ID。
post.title帖子的标题。
post.url网站上该帖子的链接。
post.published帖子的发布时间,格式为 RFC 3339 时间戳;也可能为 null。
post.content订阅源提供的 HTML 格式帖子内容,可能是全文,也可能是摘要。
post.audio_url帖子附带的 MP3 文件地址,例如播客单集;也可能为 null。
post.image_url帖子附带的图片地址;如果没有,则使用内容中的第一张图片;也可能为 null。
feed.idFeeder 为订阅源分配的短 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 次:

尝试次数距离上一次发送的间隔
25 秒
330 秒
41 分钟
55 分钟
610 分钟
730 分钟
830 分钟
930 分钟

第九次尝试后,也就是首次发送后约 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 日在各工具的官方网站核实了以下名称:

工具触发器操作需要了解的信息
ZapierRSS by Zapier:Feed 中的新条目,或多个 Feed 中的新条目Webhooks by Zapier:POSTWebhooks by Zapier 是高级应用,Zapier 仅在付费套餐中提供。
MakeRSS:监控 RSS Feed 条目HTTP:发起请求RSS 模块支持读取 RSS 和 Atom 订阅源。
IFTTTRSS Feed:Feed 中的新条目Webhooks:发起 Web 请求IFTTT 免费套餐每小时检查一次订阅源,Pro 和 Pro+ 每 5 分钟检查一次。
n8nRSS 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 分钟一次,并提供电子邮件摘要。

免费开始使用 Feeder

延伸阅读

仍需帮助?

我们的支持团队会阅读每一条消息。告诉我们遇到了什么问题,我们会帮助你解决。

联系支持