Skip to content

we-mp-rss 配置授权过期通知教程 #417

Description

@starsky3000

没有找到授权过期通知的教程,就把github仓库发给deepseek,让它帮我研究怎么设置。它鼓捣了一会就搞出来了,然后让它整理成教程。我是Windows,其他系统可能略有不同,你们再问问AI

效果
当公众号授权过期时,we-mp-rss 自动通过企业微信群机器人发送带二维码的通知,你打开手机扫码即可重新授权,无需登录后台。

第一步:获取企业微信 Webhook URL
打开企业微信桌面客户端
进入一个群聊(或新建一个群,拉3个人就行,如果没有3个人,可以扫码登录企微网页,通讯录里创建虚拟员工)
点击群右上角 ... → 群机器人 → 添加机器人
选择 新创建一个机器人,输入名称(如 "WeRSS通知")
点击完成,复制 Webhook URL
URL 格式如下:

https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

⚠️ 请妥善保管这个 URL,不要公开到 GitHub 或博客上,否则别人可以用你的机器人发垃圾消息。

官方文档:企业微信消息推送配置说明

第二步:停止并删除旧容器
打开 PowerShell(以管理员身份运行),执行:

docker stop we-mp-rss
docker rm we-mp-rss

你的数据保存在 ./data 目录中,删容器不会丢数据。(以防万一,大家还是把订阅的公众号导出一份)

第三步:重新启动容器,传入环境变量
docker run -d --name we-mp-rss
-p 8001:8001 -v ./data:/app/data
-e WECHAT_WEBHOOK="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的key" -e SEND_CODE="true"
-e CODE_TITLE="公众号授权二维码" `
ghcr.io/rachelos/we-mp-rss:latest

说明:

WECHAT_WEBHOOK — 企业微信机器人 URL(替换成你自己的 key)
SEND_CODE=true — 关键参数,开启后通知会附带二维码(默认为 false,只发文字)
CODE_TITLE — 通知标题,可自定义
-v ./data:/app/data — 挂载数据目录,保留原有数据
也可以不用换行符,写成一行:

docker run -d --name we-mp-rss -p 8001:8001 -v ./data:/app/data -e WECHAT_WEBHOOK="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的key" -e SEND_CODE="true" -e CODE_TITLE="公众号授权二维码" ghcr.io/rachelos/we-mp-rss:latest

第四步:验证配置
docker exec we-mp-rss env | findstr "WECHAT SEND_CODE CODE_TITLE"

正常输出:

WECHAT_WEBHOOK=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的key
SEND_CODE=true
CODE_TITLE=公众号授权二维码

工作原理
步骤 说明
① 检测失效 driver/wx_api.py 在调用公众号接口时检测到 token 过期
② 触发通知 自动调用 jobs/failauth.py 的 send_wx_code()
③ 获取二维码 因为 SEND_CODE=true,代码会调用浏览器获取登录二维码
④ 推送消息 通过 jobs/notice.py 将二维码图片和文字发到所有已配置的通知通道
⑤ 你扫码 企业微信收到消息,打开手机扫码,授权自动恢复
其他通知通道(可选)
除了企业微信,还支持以下通道,可以同时启用多个:

通道 环境变量 获取方式
钉钉 DINGDING_WEBHOOK 钉钉群 → 群设置 → 智能群助手 → 自定义机器人
飞书 FEISHU_WEBHOOK 飞书群 → 群设置 → 群机器人 → 自定义机器人
自定义 CUSTOM_WEBHOOK 任意接受 JSON POST 的 HTTP 端点
Bark 需在 config.yaml 手动添加 iOS Bark App
同时启用多个通道只需在 docker run 中加多个 -e 参数即可:

docker run -d --name we-mp-rss -p 8001:8001 -v ./data:/app/data -e WECHAT_WEBHOOK="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的key"
-e DINGDING_WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=你的token" -e FEISHU_WEBHOOK="https://open.feishu.cn/open-apis/bot/v2/hook/你的hook"
-e SEND_CODE="true" `
ghcr.io/rachelos/we-mp-rss:latest

⚠️ 常见问题
Q: 为什么要删容器重建,不能直接 docker restart 吗?

A: docker restart 不会重新读取环境变量。必须删除容器然后用新的 docker run 传参。

Q: 以后更新版本怎么办?

A: 同样的流程 — docker stop → docker rm → docker pull ghcr.io/rachelos/we-mp-rss:latest → 再用上方的 docker run 命令启动(参数保留)。

Q: 消息任务(后台 /message-tasks)页面能替代这个配置吗?

A: 不能。后台的消息任务是按 cron 定时推送文章内容的系统;授权过期通知走的是另一套代码路径,只能通过环境变量或 config.yaml 配置。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions