企业微信存档服务

Polar Sponsor
爱发电 赞助
.NET 9.0

企业微信整合服务:支持普通回调和会话存档

企业微信存档服务技能

功能概述

企业微信存档服务技能是一项面向实际任务的技能,主要用于本技能提供完整的企业微信整合服务,包含两大核心功能:;普通回调服务 - 处理企业微信应用的事件回调(消息接收、用户变更等);

核心要点

  • 会话内容存档服务 - 合规的企业微信会话内容存档与查询;
  • ⚠️ 核心配置强制注意事项(必须严格遵守);
  • 企业微信回调URL要求 :所有回调URL必须使用企业已备案的官方域名,禁止使用IP地址或临时域名,否则企业微信会拦截回调请求;

使用与执行

公网暴露方案。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

结果检查与注意事项

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

企业微信存档服务技能

功能概述

本技能提供完整的企业微信整合服务,包含两大核心功能:

  1. 普通回调服务 - 处理企业微信应用的事件回调(消息接收、用户变更等)
  2. 会话内容存档服务 - 合规的企业微信会话内容存档与查询

⚠️ 核心配置强制注意事项(必须严格遵守)

  1. 企业微信回调URL要求:所有回调URL必须使用企业已备案的官方域名,禁止使用IP地址或临时域名,否则企业微信会拦截回调请求
  2. 公网暴露方案:若部署服务器无固定公网IP,必须使用Cloudflare Tunnel将本地8400端口映射到企业官方域名,确保HTTPS访问正常
  3. IP白名单配置:必须在企业微信管理后台「应用管理」-「会话内容存档」页面配置服务器出口IP白名单,否则企业微信会拒绝回调请求

快速开始

1. 安装依赖

# 进入技能目录
cd skills/wework-archive-service

# 安装Python依赖
pip3 install flask pycryptodome requests

2. 配置企业微信

  1. 复制配置文件模板:

    cp config/wework_config_template.json config/wework_config.json
    
  2. 编辑配置文件 config/wework_config.json,填写以下信息:

    • callback_token: 企业微信后台 > 应用管理 > 自建应用 > 接收消息 > Token
    • callback_encoding_aes_key: 企业微信后台 > 应用管理 > 自建应用 > 接收消息 > EncodingAESKey
    • corp_id: 企业ID(我的企业 > 企业信息)
    • agent_id: 应用ID(应用管理 > 自建应用)
    • corp_secret: 应用Secret(应用管理 > 自建应用)
    • archive_token: 会话存档Secret(管理工具 > 会话内容存档 > 开启 > Secret)

3. 启动服务

# 启动服务
./scripts/start_service.sh

# 验证服务状态
./scripts/verify_service.sh

# 停止服务
./scripts/stop_service.sh

4. 配置企业微信后台

普通回调配置:

  1. 进入企业微信后台 > 应用管理 > 自建应用
  2. 点击"接收消息" > 设置API接收
  3. 填写以下信息:
    • URL: http://你的域名/callback
    • Token: 与配置文件中的 callback_token 一致
    • EncodingAESKey: 与配置文件中的 callback_encoding_aes_key 一致

会话存档配置:

  1. 进入企业微信后台 > 管理工具 > 会话内容存档
  2. 点击"开启"
  3. 配置回调地址:
    • URL: http://你的域名/archive/callback
    • Token: 与配置文件中的 archive_token 一致

服务接口

健康检查

  • GET /health - 服务健康状态
  • GET /archive/health - 存档服务健康状态

回调接口

  • GET /callback - 企业微信回调验证(普通应用)
  • POST /callback - 接收企业微信事件消息
  • POST /archive/callback - 接收会话存档数据

查询接口

  • GET /messages - 查询所有消息
  • GET /messages/ - 查询特定消息
  • GET /messages/user/ - 查询用户消息
  • GET /messages/room/ - 查询群聊消息

Cloudflare Tunnel 配置

1. 安装 Cloudflare Tunnel

# macOS
brew install cloudflared

# Linux
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb

# 验证安装
cloudflared --version

2. 登录 Cloudflare

cloudflared tunnel login

在浏览器中完成认证。

3. 创建隧道

# 创建隧道
cloudflared tunnel create wework-tunnel

# 查看隧道ID
cloudflared tunnel list

4. 配置路由

# 创建配置文件
cloudflared tunnel route dns wework-tunnel wework.yourdomain.com

# 或者手动配置DNS
# 在Cloudflare DNS设置中添加CNAME记录:
# wework.yourdomain.com -> <隧道ID>.cfargotunnel.com

5. 配置隧道

创建配置文件 ~/.cloudflared/config.yml:

tunnel: <隧道ID>
credentials-file: /Users/你的用户名/.cloudflared/<隧道ID>.json

ingress:
  - hostname: wework.yourdomain.com
    service: http://localhost:8400
  - service: http_status:404

6. 启动隧道

# 测试配置
cloudflared tunnel ingress validate

# 启动隧道
cloudflared tunnel run wework-tunnel

# 或作为服务运行
cloudflared service install
sudo systemctl start cloudflared

7. HTTPS设置

Cloudflare Tunnel自动提供:

  • 自动HTTPS证书(Let's Encrypt)
  • DDoS防护
  • Web应用防火墙
  • 全球CDN加速

数据库管理

初始化数据库

服务首次启动时会自动创建SQLite数据库 wework_combined.db。

数据库结构

  • messages - 存储所有消息记录
  • attachments - 存储附件信息
  • users - 存储用户信息
  • rooms - 存储群聊信息

备份数据库

# 备份数据库
cp wework_combined.db wework_combined_backup_$(date +%Y%m%d).db

# 使用SQLite工具查看
sqlite3 wework_combined.db

故障排除

常见问题

1. 服务启动失败

# 检查端口占用
lsof -ti:8400

# 检查Python依赖
python3 -c "import flask, Crypto, requests"

2. 企业微信回调验证失败

  • 检查Token、EncodingAESKey是否与后台一致
  • 检查服务器时间是否同步
  • 检查网络连通性

3. Cloudflare Tunnel连接失败

# 检查隧道状态
cloudflared tunnel info <隧道ID>

# 查看日志
cloudflared tunnel run wework-tunnel --debug

4. 数据库问题

# 修复数据库
sqlite3 wework_combined.db "VACUUM;"

# 检查数据库完整性
sqlite3 wework_combined.db "PRAGMA integrity_check;"

日志查看

# 查看服务日志
tail -f wework_service.log

# 查看详细日志
tail -f wework_combined.log

安全建议

  1. 定期更新配置:

    • 定期更换Token和EncodingAESKey
    • 使用强密码
  2. 网络防护:

    • 使用Cloudflare Tunnel的防火墙规则
    • 限制访问IP(企业微信IP白名单)
  3. 数据安全:

    • 定期备份数据库
    • 加密敏感数据
    • 设置访问权限
  4. 监控告警:

    • 监控服务运行状态
    • 设置磁盘空间告警
    • 监控API调用频率

更新日志

v1.0.0 (2024-03-05)

  • 初始版本发布
  • 支持企业微信普通回调
  • 支持会话内容存档
  • 集成线程安全存储
  • 提供完整Cloudflare Tunnel配置

技术支持

如有问题,请参考:

  1. references/ 目录下的详细文档
  2. 企业微信官方文档
  3. Cloudflare Tunnel文档
  4. 查看日志文件排查问题

许可证

MIT License - 详见 LICENSE 文件

相关专题

更多
微信调黑色模式教程
微信调黑色模式教程

本专题整合了微信调黑色模式教程,阅读下面的文章了解更多详细内容。

2025.12.25

776

25

微信访客记录查看教程
微信访客记录查看教程

微信虽功能丰富,却未直接设置查看访客记录的功能,不过,仍能借助一些间接方法,来了解访客的相关情况。比如,通过朋友圈互动,查看点赞、评论者,推断访客踪迹;运营公众号的用户,可在后台统计数据中,分析访客行为。

2025.05.28

4916

10

微信怎么解除未成年认证
微信怎么解除未成年认证

若要解除微信未成年认证,您必须已满 18 周岁且认证时间已超过 30 天。具体解除步骤如下:登录微信,前往“我”页面。点击“设置”>“未成年保护”。填写真实姓名、身份证号和身份证照片。进行人脸识别。点击“解除未成年认证”,提交审核。审核通过后,解除成功,即可恢复所有微信功能。

2025.04.22

8073

12

微信对方没打电话显示忙线咋回事儿
微信对方没打电话显示忙线咋回事儿

微信显示“忙线”原因:对方正在通话;对方开启了“免打扰”模式;信号不佳;操作延迟;系统故障。

2025.03.28

3440

4

微信角标数字怎么恢复
微信角标数字怎么恢复

恢复微信角标数字的方法:1、强制退出微信,重新启动;2、清除微信缓存;3、检查微信版本更新;4、卸载并重新安装微信。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.01.16

3022

7

怎么查看微信注册时间
怎么查看微信注册时间

通过以下步骤查看微信注册时间:1. 打开微信;2. 点击“我”;3. 点击“设置”;4. 进入“账号与安全”;5. 查看“微信号”;6. 查看注册时间。想了解更多相关的内容,请阅读专题下面的文章。

2024.12.23

6200

8

微信打电话怎么不显示
微信打电话怎么不显示

微信电话不显示的原因可能是:未打开通话显示设定。运营商限制。对方设定了拒接陌生来电。技术问题。隐私保护导致来电号码隐藏,需对方主动选择显示。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.12.10

3575

6

手动删除的微信聊天记录怎么找回
手动删除的微信聊天记录怎么找回

手动删除的微信聊天记录可以通过以下方法找回:如已开启微信聊天记录备份,可通过「设置」>「聊天」>「聊天记录备份与迁移」恢复。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.12.02

1474

6

微信个人主页上怎么显示电话
微信个人主页上怎么显示电话

您可以通过以下步骤在微信个人主页上显示您的电话号码:打开微信,转到“我”页面并点击“个人资料”;在“个人资料”页面,点击“联系方式”;添加您的电话号码并点击“保存”;返回个人资料页面,您的电话号码将显示在联系方式中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.11.28

2014

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Codebuddy 插件
Codebuddy 插件

共0课时 | 0人学习

秒哒微信小程序发布
秒哒微信小程序发布

共0课时 | 0人学习

腾讯元宝使用手册
腾讯元宝使用手册

共0课时 | 0人学习