问答

wewe-rss 的微信读书账号总进小黑屋,有不用账号的替代方案吗?

简短回答

有。把微信读书账号换成一次 API 调用:每个公众号先查一次原始 ID,之后用公众号历史文章接口拉最新 10 篇,每次 $0.04。30 个号每天查一次,一个月 $36.00,没有会过期的登录态,也没有会被封的账号。

wewe-rss 的订阅隔三差五停更,打开后台一看,要么微信读书账号又进了小黑屋,要么全部报 401,得有人重新扫码。问题出在账号上,订阅本身没毛病。把账号换成 API key,订阅的样子不变:每个关注的公众号,用公众号历史文章拉最新的 10 篇,带标题、链接、摘要和发布时间。全程没人登录,自然也不会半夜过期。

读书账号为什么会被关小黑屋

wewe-rss 是借微信读书来读公众号更新的,每刷新一个订阅,都是这一个账号在发请求。40 个订阅每小时刷一遍,微信读书就会把账号暂停到第二天;放着不管,登录态过几天也会失效。多加几个读书账号能分摊压力,可要盯的登录也跟着变多。

换成 API 之后怎么接

  1. 每个号查一次 ID。 公众号搜索按名称搜,返回原始 ID(gh_ 开头)。wewe-rss 里的订阅 ID 用不上,把 gh_ ID 记在每个订阅旁边就行。
  2. 定时查新文章。 每个号调一次历史文章接口,拿到最新一页,和上次见过的链接比一下,新的留下。
  3. 想推到哪就推到哪。 生成 RSS 文件、写进数据库、发到群机器人都可以。

每月花多少

用法 每月调用 每月费用
30 个号,每天查 1 次 900 $36.00
30 个号,每天查 3 次 2,700 $108.00
一次性查这 30 个号的 ID 30 次搜索 最多 $17.40

公众号搜索按返回的账号数计费,每个 $0.058,单次最多 $0.58。用完整的公众号名称去搜,返回的号少,花得也少。

一个最小的轮询脚本

import json, os, requests

API = "https://api.okdata.online"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
FEEDS = ["gh_363b924965e9"]  # 公众号搜索拿到的原始 ID
seen = set(json.load(open("seen.json"))) if os.path.exists("seen.json") else set()

for gh in FEEDS:
    body = requests.get(API + "/v1/wechat_mp/accounts/articles/list",
                        headers=H, params={"id": gh}, timeout=60).json()
    if body["code"] != "ok":
        print(gh, body["code"], body["message"])
        continue
    for a in body["data"]["items"]:
        if a["url"] not in seen:
            seen.add(a["url"])
            print(a["published_at"], a["title"], a["url"])

json.dump(sorted(seen), open("seen.json", "w"))

切换前要知道的

  • 每天查一次,只要第一页就够了。往前翻页,每页单独计一次费。
  • 阅读数和点赞数能拿到时会跟着文章一起返回,拿不到就是 null,响应里的 meta.unavailable 会写明。
  • 全文是另一个接口:公众号文章详情,每篇 $0.02。大多数 RSS 阅读器有链接和摘要就够用。
  • 只返回公开发布的文章,被删的文章自然就没了。

什么时候继续用 wewe-rss 更合适

自己看的三五个订阅,wewe-rss 免费、能自部署,刷新频率调低一些,读书账号大多数时候不会出事。如果只关心一个号而且号是你自己的,微信官方接口就能免费列出已发布的图文。订阅几十个号,或者这条订阅后面接着不能停的流程,比如每天的竞品监测简报,换 API 才划算。全部价格见价格页。

更新于