Files
GX-gp-notify/README_企业微信.md
T

5.4 KiB
Raw Blame History

广西政府采购网公告监控系统 - 企业微信集成

概述

本系统已集成企业微信功能,支持:

  • 企业微信应用消息推送
  • 回调服务器处理用户交互
  • 应用菜单管理
  • 实时爬取和自定义搜索

配置要求

1. 企业微信应用配置

config/config.yaml 中配置企业微信信息:

# 企业微信应用配置
wechat_app:
  enabled: true                    # 是否启用企业微信通知
  corp_id: "ww69e8e44636f47780"   # 企业ID
  agent_id: "1000007"             # 应用ID
  secret: "SmelCwKFoL0E9ATWFzr-w7gsfXBTN72lT1UqnNd0HpI"  # 应用Secret
  token: "DmvL98cAF6x9CFtQZwqD2emGL8S7HxA"               # Token
  encoding_aes_key: "yAc4OoSCP92YTefHXYfw27WeG9oF11W9d6nw6QYlU3D"  # 消息加密Key
  port: 18001                     # 服务端口

2. 企业微信管理后台设置

  1. 设置回调URL

    • 在企业微信管理后台的应用设置中
    • 设置回调URL为:http://your-server-ip:18001/api/v1/wechat/callback
    • Token和EncodingAESKey需要与配置文件一致
  2. 设置应用可见范围

    • 配置应用对哪些部门或成员可见
    • 确保有基础接口权限

功能说明

1. 消息推送

系统会在以下情况下自动推送消息到企业微信:

  • 爬取完成通知:每次执行爬取后,推送筛选结果
  • 关键词匹配通知:发现匹配关键词的公告时推送
  • 系统状态通知:系统启动、错误等重要事件

消息格式参考 企业微信消息示例.md

2. 应用菜单

系统提供以下菜单功能:

操作菜单

  • 立即爬取:执行一次完整的公告爬取
  • 今日总结:查看今日公告统计(开发中)
  • 自定义爬取:输入关键词进行搜索

帮助菜单

  • 使用说明:显示详细使用指南
  • 联系我们:联系信息

3. 文本交互

支持以下文本命令:

# 关键词搜索
直接发送关键词,如:大化、信息化

# 手动爬取
爬取 [关键词]    # 如:爬取 大化

# 获取帮助
帮助            # 显示使用说明
help

# 查看总结
总结            # 查看今日统计

部署和运行

1. 安装依赖

pip install -r gx_gp_monitor/requirements.txt

2. 测试功能

# 测试企业微信模块
python test_wechat_server.py

3. 启动回调服务器

# 方法1:使用专用启动脚本
python start_wechat_server.py

# 方法2:使用主程序
python gx_gp_monitor/main.py wechat-server

4. 管理菜单

# 创建菜单
python gx_gp_monitor/main.py wechat-menu --action create

# 删除菜单
python gx_gp_monitor/main.py wechat-menu --action delete

# 获取菜单信息
python gx_gp_monitor/main.py wechat-menu --action get

# 测试菜单操作
python gx_gp_monitor/main.py wechat-menu --action test

5. 正常爬取

# 执行爬取(会自动推送消息)
python gx_gp_monitor/main.py crawl

技术实现

1. 回调服务器

  • 框架Flask
  • 端口18001
  • 路径/api/v1/wechat/callback
  • 功能:处理企业微信的回调消息和URL验证

2. 消息加解密

  • 库来源:企业微信官方Python示例
  • 位置gx_gp_monitor/wechat/WXBizMsgCrypt.py
  • 功能:实现消息加密、解密和签名验证

3. 消息处理

  • 事件处理:关注、取消关注、菜单点击
  • 文本处理:关键词搜索、手动命令
  • 响应格式XML格式的企业微信消息

4. 菜单管理

  • 创建菜单:自动创建预定义菜单
  • 删除菜单:清理现有菜单
  • 获取菜单:查看当前菜单配置

故障排除

1. 回调URL验证失败

  • 检查Token和EncodingAESKey是否正确配置
  • 确保服务器可从公网访问
  • 检查端口18001是否开放

2. 消息推送失败

  • 检查企业微信应用配置(corp_id, agent_id, secret
  • 确认应用有消息发送权限
  • 查看应用可见范围设置

3. 菜单创建失败

  • 检查应用是否有菜单管理权限
  • 确认Token有效且有管理员权限

4. 导入错误

# 确保依赖已安装
pip install flask pycryptodome

# 测试导入
python -c "from gx_gp_monitor.wechat.callback_server import WeChatCallbackServer; print('OK')"

日志查看

系统会记录详细的企业微信操作日志:

# 查看日志
tail -f logs/gx_gp_monitor.log | grep wechat

安全注意事项

  1. 保护配置文件:不要将包含密钥的配置文件提交到版本控制
  2. 网络安全:确保回调服务器只接受来自企业微信的请求
  3. 权限控制:合理设置应用可见范围和权限
  4. 定期更新:定期更新企业微信应用Secret

开发说明

项目结构

gx_gp_monitor/wechat/
├── __init__.py              # 模块初始化
├── callback_server.py      # Flask回调服务器
├── message_handler.py       # 消息处理逻辑
├── menu_manager.py          # 菜单管理
├── WXBizMsgCrypt.py         # 企业微信加密库
└── ierror.py               # 错误码定义

扩展功能

如需添加新功能,可以:

  1. message_handler.py 中添加新的消息处理逻辑
  2. menu_manager.py 中修改菜单配置
  3. callback_server.py 中添加新的路由

联系支持

如有问题,请检查:

  1. 系统日志
  2. 企业微信管理后台错误信息
  3. 网络连接和配置