Skip to content

oocsoo/WeChatMessageFarward

Repository files navigation

微信群消息转发公众号查询信息回转目标群

一个基于Python的微信群消息自动转发系统,支持将群消息转发到公众号查询,并将查询结果自动回复到对应的群。

📋 项目简介

本系统通过WebSocket接收微信消息回调,当群消息包含指定关键词时,自动转发到公众号进行查询,然后将公众号的回复发送回对应的群。

核心特点

  • ✅ 串行消息处理,确保消息不丢失、不乱回
  • ✅ 支持多群并发,自动队列管理
  • ✅ 超时保护机制,公众号无响应时自动跳过
  • ✅ 完全可配置,支持自定义超时时间和提示消息

🚀 功能特点

1. 智能消息转发

  • 支持多个群同时发送消息
  • 关键词触发机制
  • 自动识别群昵称

2. 串行处理机制

  • 一次只处理一条消息,避免混乱
  • 自动队列管理,按顺序处理
  • 消息不会丢失或发错群

3. 超时保护

  • 可配置超时时间(默认300秒)
  • 超时自动跳过,继续处理下一条
  • 自动发送超时提示到群

📦 安装步骤

1. 克隆项目

git clone https://github.com/oocsoo/WeChatMessageFarward
cd WeChatMessageFarward-main

2. 安装依赖

pip install -r requirements.txt

3. 配置环境变量

复制 .env.example.env,并修改配置:

cp .env.example .env

⚙️ 配置说明

编辑 .env 文件,配置以下参数:

基础配置

# 机器人ID
ROBOT_ID=wxid_xxxxx

# 服务器配置
SERVER_IP=服务器IP地址
SERVER_PORT=5555

转发配置

# 需要接入转发的群昵称(支持多个)
GROUP_NICK_NAME=['群昵称1','群昵称2']

# 触发转发的关键词(支持多个)
KEYWORDS=["查","找","搜","查询","搜索"]

超时配置

# 超时时间(秒),默认10秒
TIMEOUT=10

# 超时提示消息
TIMEOUT_MESSAGE=抱歉,公众号响应超时,请稍后重试或联系管理员。

🎯 使用方法

启动程序

python main.py

工作流程

  1. 用户在群里发送包含关键词的消息
  2. 系统自动转发到公众号
  3. 公众号回复后,系统将回复发送到对应的群
  4. 如果公众号超时未回复,自动发送超时提示并处理下一条

示例

用户在群里发送: "查询订单123"
↓
系统转发到公众号
↓
公众号回复: "订单123的物流信息..."
↓
系统将回复发送到群里

🔧 工作原理

串行处理机制

群1发消息 → 入队 → 立即发送到公众号 → 等待回复
群2发消息 → 入队 → 等待
群3发消息 → 入队 → 等待
                ↓
        公众号回复 → 回复到群1 → 自动发送群2消息 → 等待回复
                                        ↓
                                公众号回复 → 回复到群2 → ...

超时保护

  • 每次有新消息入队时,自动检查当前消息是否超时
  • 如果超过设定时间(默认300秒)未收到回复,自动跳过
  • 发送超时提示到对应的群
  • 继续处理队列中的下一条消息

📁 文件结构

.
├── main.py                      # WebSocket客户端主程序
├── schedule.py                  # 消息调度处理
├── serial_message_manager.py   # 串行消息管理器
├── env_loader.py                # 环境变量加载
├── .env                         # 配置文件
├── requirements.txt             # 依赖列表
├── action/                      # 动作模块
│   └── solo/
│       ├── get_group_nickname.py    # 获取群昵称
│       └── sendtextmessage.py       # 发送文本消息
└── record/                      # 消息记录目录
    └── record.json              # 当前处理的消息记录

⚠️ 注意事项

  1. 超时时间设置

    • 建议根据公众号实际响应时间调整
    • 过短可能导致正常消息被跳过
    • 过长会影响队列处理效率
  2. 关键词配置

    • 关键词不宜过于宽泛,避免误触发
    • 支持多个关键词,任意一个匹配即触发
  3. 群昵称配置

    • 必须与微信群的实际昵称完全一致
    • 区分大小写
  4. 消息队列

    • 系统采用串行处理,确保消息不会混乱
    • 多个群同时发送消息时会自动排队

🛠️ 技术栈

  • Python 3.x
  • asyncio - 异步IO处理
  • websockets - WebSocket客户端
  • python-dotenv - 环境变量管理

📝 许可证

本项目仅供学习和研究使用。


🤝 贡献

欢迎提交Issue和Pull Request!


注意:请确保遵守微信相关使用规范,不要用于违规用途。

About

一个基于Python的微信群消息自动转发系统,支持将群消息转发到公众号查询,并将查询结果自动回复到对应的群。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages