# 公众号怎么用 RSS 订阅？

> 微信不提供 RSS。用公众号的文章列表生成一个标准 RSS 源，放在任何地方，用任何阅读器订阅。费用和代码。

网页版：https://okdata.online/zh/answers/wechat-official-account-rss-feed/

**简短回答：**微信没有 RSS，只能自己生成：调用公众号历史文章接口（每次 $0.04，返回最新 10 篇），把结果写成 RSS 文件让阅读器去拉。一个号每天刷新两次，每月 $2.40；二十个号是 $48.00。

别的订阅都在 Reeder、Inoreader 或 Folo 里看，唯独关心的那几个公众号只能在微信里刷。微信从来没提供过 RSS，所以订阅源得自己生成。真正需要数据的部分很小：[公众号历史文章](/zh/apis/wechat_mp/accounts/articles/list/)返回一个号最新的 10 篇文章，带标题、链接、摘要和发布时间，正好一一对应 RSS 的 item。脚本把它写进 `feed.xml`，阅读器像订阅普通网站一样去拉这个文件。

## 步骤

1. 用[公众号搜索](/zh/apis/wechat_mp/accounts/search/)查一次这个号的原始 ID（gh_ 开头），每返回一个号 $0.058。
2. 定时跑下面的脚本，用 cron、GitHub Actions 或者一台小服务器都行。
3. 把 `feed.xml` 放到阅读器访问得到的地方：静态托管、对象存储，阅读器装在同一台机器上的话放本地文件夹也可以。

```python
import os, requests
from email.utils import format_datetime
from datetime import datetime
from xml.sax.saxutils import escape

API = "https://api.okdata.online"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
GH = "gh_363b924965e9"

body = requests.get(API + "/v1/wechat_mp/accounts/articles/list", headers=H,
                    params={"id": GH}, timeout=60).json()
if body["code"] != "ok":
    raise SystemExit(f"{body['code']}: {body['message']}")

items, name = [], GH
for a in body["data"]["items"]:
    name = a["author"]["name"] or name
    date = format_datetime(datetime.fromisoformat(a["published_at"].replace("Z", "+00:00")))
    items.append(f"<item><title>{escape(a['title'] or '')}</title><link>{escape(a['url'])}</link>"
                 f"<guid>{escape(a['url'])}</guid><pubDate>{date}</pubDate>"
                 f"<description>{escape(a['text'])}</description></item>")

rss = (f'<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel>'
       f"<title>{escape(name)}</title><link>https://mp.weixin.qq.com/</link>"
       f"<description>{escape(name)}（okdata 生成）</description>{''.join(items)}</channel></rss>")
open("feed.xml", "w", encoding="utf-8").write(rss)
```

## 多久刷新一次，要花多少

每刷新一次，每个号就是一次调用，不管有没有新文章。

| 订阅数 | 每天刷新 | 每月调用 | 每月费用 |
|---|---|---|---|
| 1 | 2 次 | 60 | $2.40 |
| 20 | 2 次 | 1,200 | $48.00 |
| 20 | 6 次 | 3,600 | $144.00 |

搜索时加 `view=full`，每个号都会带 `ext.articles_per_week`（每周发文数）。一周发两次的号用不着一天刷六次，刷一次就够了。

## 限制

- item 的描述是文章摘要，不是全文。想在阅读器里看全文，每篇新文章多调一次[公众号文章详情](/zh/apis/wechat_mp/articles/get/)，每篇 $0.02，记得缓存，同一篇别取两次。
- 只有公开发布的文章。删掉的文章下次刷新就没了，但阅读器里已经拉到的还在。
- 出错不收费。某次刷新失败的话，保留旧的 `feed.xml`，别用空文件覆盖。

## 免费的办法

wewe-rss、we-mp-rss 这类自部署项目也能生成公众号 RSS，不花钱，代价是要一直保持一个微信读书账号或公众号后台的登录。RSSHub 也有过公众号相关的路由，用之前先确认对你关注的号还管用。自己看的几个订阅，用这些项目很合适；别人或者别的系统要依赖的订阅源，走 API 更稳。各接口价格见[价格页](/zh/pricing/)。

## 用到的接口

- [公众号历史文章](https://okdata.online/zh/apis/wechat_mp/accounts/articles/list/) `wechat_mp.accounts.articles.list`：$0.04/次 · 每页约 10 篇文章
- [公众号搜索](https://okdata.online/zh/apis/wechat_mp/accounts/search/) `wechat_mp.accounts.search`：$0.058/条 · 每次最多 $0.58

更新于 2026-11-12
