这是一个 Claude 技能,用于自动化微信操作。基于 wxautox4 库实现,支持发送微信信息、读取聊天会话内容、发送文件和图片等功能。
- ✅ 智能发送 - 自动识别内容类型(文本/图片/文件)
- ✅ 批量发送 - 支持混合内容类型,逐个发送
- ✅ 广播发送 - 同一内容发送给多个联系人
- ✅ 文件类型检测 - 自动识别图片和文档格式
- ✅ 发送间隔控制 - 防止频率限制
- ✅ 发送文本消息 - 支持精确和模糊匹配
- ✅ 发送文件 - 支持各种文件格式
- ✅ 发送图片 - 支持常见图片格式
- ✅ 获取聊天会话列表 - 获取微信会话信息
- ✅ 读取聊天记录 - 获取指定联系人聊天历史
- ✅ 完善的错误处理 - 详细日志记录
- ✅ 状态跟踪 - 发送结果实时反馈
- 安装依赖包:
pip install -r requirements.txt- 确保微信客户端已登录
技能会自动识别发送内容的类型:
- 文本消息: 当内容不是文件路径时
- 图片文件: 当文件路径以
.jpg,.jpeg,.png,.gif,.bmp,.webp,.ico,.tiff,.tif结尾时 - 普通文件: 当文件存在但不是图片格式时
# 推荐:使用智能发送,自动识别类型
handler.smart_send("你好", "联系人") # 文本
handler.smart_send("C:/images/photo.jpg", "联系人") # 图片
handler.smart_send("C:/docs/report.pdf", "联系人") # 文件
# 批量发送混合内容
contents = [
"开始发送",
"C:/images/图1.jpg", # 图片
"中间消息",
"C:/docs/文件.pdf", # 文件
"结束消息"
]
handler.batch_send(contents, ["联系人"] * 5, delay=1.0)- 单条发送:无限制
- 批量发送:建议延迟 1-2 秒
- 大量发送:建议延迟 3-5 秒
from wx_auto_handler import create_wx_auto_handler
# 创建处理器实例
handler = create_wx_auto_handler()
# 智能发送 - 自动识别内容类型
result = handler.smart_send("你好", "文件传输助手") # 文本消息
result = handler.smart_send("C:/path/to/image.jpg", "张三") # 自动识别为图片
result = handler.smart_send("C:/path/to/file.pdf", "李四") # 自动识别为文件
# 手动指定发送方式
result = handler.send_text_message("你好", "文件传输助手")
result = handler.send_file("C:/path/to/file.txt", "张三")
result = handler.send_image("C:/path/to/image.jpg", "李四")# 批量发送 - 支持混合内容类型
contents = [
"第一条消息",
"C:/path/to/image1.jpg", # 图片
"第二条消息",
"C:/path/to/file.pdf", # 文件
"最后一条消息"
]
contacts = ["联系人1", "联系人1", "联系人2", "联系人2", "联系人3"]
result = handler.batch_send(contents, contacts, delay=1.0)
print(result)
# 广播发送 - 同一内容给多个联系人
message = "重要通知"
contacts = ["联系人1", "联系人2", "联系人3"]
result = handler.broadcast_send(message, contacts, delay=1.0)
print(result)
# 获取聊天会话
sessions = handler.get_chat_sessions()
print(sessions)
# 获取聊天记录
history = handler.get_chat_history("张三", limit=50)
print(history)wx-auto/
├── README.md # 技能说明文档
├── skill.md # 技能描述和规范
├── wx_auto_handler.py # 核心处理器
├── examples.py # 基础使用示例
├── smart_examples.py # 智能发送功能示例
├── test_wx_auto.py # 单元测试
├── quick_test.py # 快速测试
├── requirements.txt # 依赖包列表
└── readme.md # 原始说明文件
handler = WxAutoHandler()smart_send(content, contact, exact_match=True)
- 智能发送 - 自动识别内容类型
- 参数:
- content: 内容(文本、图片路径或文件路径)(str)
- contact: 联系人名称 (str)
- exact_match: 是否精确匹配联系人 (bool)
- 返回:操作结果字典
- 特性:自动识别发送内容是文本、图片还是文件
batch_send(contents, contacts, exact_match=True, delay=1.0)
- 批量发送 - 支持混合内容类型
- 参数:
- contents: 内容列表 (List[str])
- contacts: 联系人名称列表 (List[str])
- exact_match: 是否精确匹配联系人 (bool)
- delay: 发送间隔秒数 (float)
- 返回:批量发送结果字典
- 特性:逐个发送,支持文本、图片、文件混合
broadcast_send(content, contacts, exact_match=True, delay=1.0)
- 广播发送 - 同一内容给多个联系人
- 参数:
- content: 要发送的内容 (str)
- contacts: 联系人名称列表 (List[str])
- exact_match: 是否精确匹配联系人 (bool)
- delay: 发送间隔秒数 (float)
- 返回:广播发送结果字典
send_text_message(message, contact, exact_match=True)
- 发送文本消息
- 参数:
- message: 消息内容 (str)
- contact: 联系人名称 (str)
- exact_match: 是否精确匹配联系人 (bool)
- 返回:操作结果字典
send_file(file_path, contact, exact_match=True)
- 发送文件
- 参数:
- file_path: 文件路径 (str)
- contact: 联系人名称 (str)
- exact_match: 是否精确匹配联系人 (bool)
- 返回:操作结果字典
send_image(image_path, contact, exact_match=True)
- 发送图片
- 参数:
- image_path: 图片路径 (str)
- contact: 联系人名称 (str)
- exact_match: 是否精确匹配联系人 (bool)
- 返回:操作结果字典
get_chat_sessions()
- 获取聊天会话列表
- 返回:会话列表字典
get_chat_history(contact, limit=50)
- 获取聊天记录
- 参数:
- contact: 联系人名称 (str)
- limit: 消息数量限制 (int)
- 返回:聊天记录字典
_detect_content_type(content)
- 检测内容类型(内部方法)
- 参数:
- content: 要检测的内容 (str)
- 返回:内容类型 ('text', 'image', 'file')
- 隐私保护: 请确保在合法合规的前提下使用此技能
- 频率控制: 避免频繁发送消息,防止被微信限制
- 文件安全: 发送文件前请确认文件内容安全
- 联系人确认: 确保联系人名称准确,避免发送错误
- 微信状态: 确保微信客户端正常登录
技能包含完善的错误处理机制:
- 文件不存在检查
- 联系人验证
- 微信连接状态检查
- 文件格式验证
- 详细的错误日志
A: 确保微信客户端已登录,并且没有其他微信自动化工具在运行。
A: 检查联系人名称是否正确,尝试使用 exact_match=False 进行模糊匹配。
A: 确认文件路径正确,文件存在,并且微信支持该文件格式。
A: 可以在微信中查看联系人名称,或者使用 get_chat_sessions() 方法获取会话列表。
- 初始版本发布
- 支持发送文本消息、文件、图片
- 基础错误处理和日志记录
本技能仅供学习和个人使用,请遵守相关法律法规和微信使用条款。
如有问题或建议,请查看示例代码或日志输出进行调试。