微信群消息自动转发:三分钟配置,多个群同步从此全自动
【免费下载链接】wechat-forwarding在微信群之间转发消息项目地址: https://gitcode.com/gh_mirrors/we/wechat-forwarding
凌晨一点,运营阿楠把同一条公告在四个微信群里各发了一遍。这不是勤奋,是无奈。而 wechat-forwarding 这个开源小工具,用一份 JSON 配置就能在微信群之间自动转发消息,把这类重复劳动直接清零。
阿楠的处境,你大概率也经历过:通知要同步、公告要传达、文件要共享,可微信群只认"手动复制粘贴"这条死规矩。她的好消息是,这套规矩可以用几行配置改写——而且不用懂编程。这篇文章就按她走过的路,带你一关一关把"群消息同步"变成全自动。
这个微信自动转发脚本,先替你省下什么
先看一组最直观的对比:
| 没有 wechat-forwarding | 有了 wechat-forwarding |
|---|---|
| 逐群复制粘贴,一次至少 3 分钟 | 一条消息自动抵达所有目标群 |
| 忙起来容易漏发某个群 | 规则写死在配置里,永远不会忘 |
| 接收方不知道消息来自哪 | 自动加上"[来源群]"前缀 |
| 图片、文件要逐个下载再重发 | 随消息一并转发,无需手动操作 |
原理其实很朴素:程序用 itchat 库登录你的微信网页版,实时监听群消息;收到消息后对照config.json里的规则,命中来源群就补上前缀,扔进发送队列,由后台线程异步发往目标群。监听、匹配、转发,三个环节全自动,你只需要在配置里写明"谁的消息去哪"。
第一关:三分钟让消息自动流转起来
不用学 Python,三步就够:
git clone https://gitcode.com/gh_mirrors/we/wechat-forwarding cd wechat-forwarding pip install itchat requests timeout-decorator三条命令各干一件事:把项目拉回本地、进到项目目录、装齐三个依赖(itchat 负责微信协议,requests 发网络请求,timeout-decorator 给下载加超时保护)。如果系统装的是 Python 3,pip可能需要换成pip3;报权限错误就加个--user参数。
然后复制一份配置模板并启动:
cp config_sample.json config.json python wechat-forwarding.py终端里会出现一个微信登录二维码,手机扫码确认,工具立刻开始工作。
避坑提示:如果二维码显示成乱码,把
wechat-forwarding.py里auto_login的enableCmdQR=2改成1或-1试试;实在不行改成enableCmdQR=True,会以图片形式弹出二维码。另外hotReload=True已开启,登录状态会被记住,重启后不用反复扫码。
第二关:读懂微信群消息转发规则的三个词
核心全在config.json的forward.config里。看一个最小例子:
{ "forward": { "config": { "市场部通知群": { "prefix": "[市场动态]", "sub": ["销售团队群", "产品部群"] } }, "data_path": "data", "max_file_size": 500000 } }逐行拆解,其实只有三个关键概念:
- 来源群(外层 key):
"市场部通知群"。这个群里的消息才会被处理。 - prefix:转发时自动加在消息前的前缀,接收方一眼就能看出消息来自哪个群,天然解决"消息来源不明"的困扰。
- sub:目标群列表。想一对多?多写几个群名就行。
data_path是图片、文件下载后存放的目录,max_file_size是单文件转发上限(单位字节)。要搭建多对多网络也很简单:config里多写几个来源群,各自指定自己的 sub 即可。
避坑提示:群名必须和微信里显示的名字一字不差,包括空格和标点。工具是按群名精确匹配的,差一个字符就静默跳过。最稳的做法是先把群名完整复制出来,再粘贴进配置。
第三关:图片、文件、匿名消息也能自动同步
光转发文字还不过瘾。好消息是,图片、视频、地图定位、分享链接、语音和普通附件都在它的射程内。
- 图片视频:转发时自动带上原文件,接收方直接点开就能看。
- 普通文件:先下载到
data_path目录,再以附件形式发出;超过max_file_size的文件会被拦下,0 字节的空文件也不会转发。 - 匿名消息:消息以
//开头时,转发后不显示发送者名字,统一显示"匿名"。适合在群里转达不便署名的话。
经验之谈:文件转发依赖先下载到本地。如果
data_path没配或者目录没有写权限,文件下载失败,转发就会悄悄失败。排查"文件转不出去"的问题,先看本地目录里到底有没有那个文件。
第四关:群位提醒和自动回复,两个隐藏技能
如果你觉得转发就到此为止,那就小看它了。config.json里还藏着两个彩蛋。
技能一:群位空出来了,自动喊人。微信群满 500 人后,有人退群腾出位置,空位往往几秒就被抢。把群名写进add.groups,把需要通知的好友写进add.users,一旦检测到该群有空位,工具会自动给你的好友们发消息:"这个群有空位了,快拉人!"每个群 30 分钟内最多提醒一次,不会轰炸:
{ "add": { "groups": {"新人群": 0}, "users": ["我自己", "管理员小周"] } }技能二:@ 它,它替你回消息。在chat里填上图灵机器人 API,群里有人 @ 你的机器人账号,它就会自动回复;别人私聊你,它也能代答。加好友请求还会被自动通过:
{ "chat": { "apikey": "你的图灵机器人Key", "apiurl": "http://openapi.turingapi.com/openapi/api/v2" } }经验之谈:机器人也不是什么都答。源码里做了兜底——只要回答里出现"不知道""不会""抱歉",这条回复就不会发出去,避免机器人当众露怯。这类细节让它更像一个懂分寸的助手,而不是复读机。
终极挑战:别让消息在群之间无限循环
这是最容易翻车的一关,也是老玩家和新手的差距所在。
如果你配置了 A 群 ↔ B 群互相转发,麻烦就来了:A 的原始消息转发到 B 后,会再次触发"B 群消息→转发到 A"的规则,于是两条消息在 A、B 之间来回反弹,变成永动机。
注意,当前版本并没有内置关键词过滤(只有前缀、目标群、文件大小这几类规则),所以防循环只能靠规则设计,两条铁律:
- 转发网络做成"树状"而非"环状":消息从主干流向分支,分支不要有回流规则。
- 单向转发优先:只让 A 流向 B,B 不配置转回 A 的规则。
三个高频坑,提前帮你填平
坑一:登录状态失效。它基于微信网页版协议,长时间挂机后登录态可能失效。对策是定期重启服务,配合hotReload减少重新扫码次数;另注意部分新注册账号无法登录网页版微信,要用可登录网页版的微信号。
坑二:群名对不上,转发静默失败。症状是"工具看起来在跑,但消息没过去"。99% 的原因是群名有细微差异。排查时先用一次测试消息验证,别拿真实业务消息试错。
坑三:转发有轻微延迟。发送端是队列异步处理,消息量大的时候会排队,这是设计使然,几秒到十几秒的延迟正常,不用慌。
让第一个群,现在就跑起来
回到阿楠。现在的她,四群同步只需要在其中一个群里发一次,其余群自动跟上,前缀标明了来源,文件原样抵达。她省下来的那三分钟,用来做了真正需要人的判断和沟通——那才是运营的价值所在。
消息搬运这种没有技术含量的事,交给脚本就够了。你只需要:clone 项目、装好依赖、填一份看得懂的配置、扫码登录。三分钟之后,你会感谢现在的自己。🚀
如果你配出了好用的转发网络,或者踩过本文没提到的坑,欢迎把这些经验告诉身边的人——每一份配置智慧,都能让更多群摆脱手动转发的苦役。
【免费下载链接】wechat-forwarding在微信群之间转发消息项目地址: https://gitcode.com/gh_mirrors/we/wechat-forwarding
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考