企业微信会话内容存档 Python SDK,用于获取和解密企业微信的聊天记录。
- 支持企业微信会话内容存档API
- 自动解密聊天消息
- 支持多版本私钥管理
- 支持获取媒体文件(图片、语音、视频等)
- 支持批量获取聊天记录
- 支持群聊和单聊消息处理
pip install pycryptodome
from we_work_sdk import WeWorkFinanceSDK
# 初始化SDK
sdk = WeWorkFinanceSDK(
corp_id="你的企业ID",
corp_secret="你的应用Secret",
private_keys=["private_key.pem"] # 私钥文件路径或私钥内容
)
# 获取聊天记录
chat_data = sdk.get_chat_data(seq=0, limit=1000)
# 获取媒体文件
media_data = sdk.get_media_data("sdkfileid")
# 支持多版本私钥
sdk = WeWorkFinanceSDK(
corp_id="企业ID",
corp_secret="应用Secret",
private_keys=[
"version1_private_key.pem", # 版本1私钥
None, # 版本2无私钥
"version3_private_key.pem" # 版本3私钥
]
)
# 获取所有聊天记录并按群组织
all_messages = sdk.main()
.
├── README.md # 项目说明文档
├── we_work_sdk.py # 主要SDK实现
├── WeWorkFinanceSdk_C.h # C库头文件
├── libWeWorkFinanceSdk_C.so # C库动态链接库
├── private_key.pem # 私钥文件(示例)
└── public_key.pem # 公钥文件(示例)
主要的SDK类,提供以下方法:
初始化SDK实例。
参数:
corp_id
: 企业IDcorp_secret
: 企业会话内容存档密钥private_keys
: 私钥列表,按版本顺序提供
获取聊天记录,支持递归获取所有数据。
参数:
seq
: 消息顺序号limit
: 一次拉取的消息条数(最大1000)all_data
: 用于递归累积数据的列表
返回: 聊天记录列表
获取媒体文件的二进制数据。
参数:
sdkfileid
: 媒体文件ID
返回: 媒体文件的二进制数据
解密聊天消息。
参数:
publickey_ver
: 公钥版本encrypt_random_key
: 加密的随机密钥encrypt_chat_msg
: 加密的聊天消息
返回: 解密后的消息JSON对象
- 文本消息 (text)
- 图片消息 (image)
- 语音消息 (voice)
- 视频消息 (video)
- 名片消息 (card)
- 位置消息 (location)
- 表情消息 (emotion)
- 文件消息 (file)
- 链接消息 (link)
- 聊天记录 (chatrecord)
SDK定义了以下异常类型:
WeWorkSDKInitException
: SDK初始化失败WeWorkSDKGetChatDataException
: 获取聊天数据失败WeWorkSDKDecryptException
: 解密失败WeWorkSDKGetMediaDataException
: 获取媒体数据失败
- 需要确保
libWeWorkFinanceSdk_C.so
文件在正确的路径下 - 私钥文件需要是PEM格式
- 企业需要开通会话内容存档功能
- 需要正确配置企业ID和Secret
重要说明: 当前项目包含的 libWeWorkFinanceSdk_C.so
是 Linux ARM 架构 的动态链接库。
- Linux x86/x64: 如需在 x86 架构的 Linux 系统上运行,请从 企业微信官网 下载对应的 SDK 文件并替换
libWeWorkFinanceSdk_C.so
- Windows: 目前尚未测试 Windows 平台兼容性,需要下载对应的 Windows SDK 文件(通常为
.dll
文件)并修改代码中的库加载路径 - macOS: 需要下载对应的 macOS SDK 文件(通常为
.dylib
文件)并替换,目前官网并没有提供
- 访问 企业微信开发者文档
- 下载适合您系统架构的SDK包
- 将对应的动态链接库文件替换项目中的
libWeWorkFinanceSdk_C.so
- 如果是非Linux系统,还需要修改
we_work_sdk.py
中第93行的库文件加载路径
请遵循企业微信官方的使用条款和相关法律法规。