← 返回
未分类

微信消息文件发送skill

This skill provides integrated WeChat account management, message delivery, and file transmission capabilities. It supports querying current user account inf...
此技能提供集成的微信账号管理、消息发送和文件传输功能,支持查询当前用户账户信息...
lianghaoxun lianghaoxun 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 535
下载
💾 1
安装
1
版本
#latest

概述

微信账号消息发送 Skill

使用 OpenClaw 的微信集成功能,实现微信账号信息查询、会话管理、主动文本消息和文件发送功能。

调用时机:当用户需要查询当前微信账户信息,或主动向指定微信联系人/群组发送消息时,通过微信发送文件即可触发。

功能说明

本技能提供以下核心功能:

  1. 微信会话查询:使用 sessions_list 工具查询当前活跃的微信会话和对话信息。
  2. 主动文本消息发送:通过微信后端API向指定用户发送文本消息。
  3. 文件发送:通过微信后端API向指定用户或机器人发送多种格式的文件(如图片、视频、音频、文档)。

功能亮点

  • 支持多账号管理
  • 自动获取用户配置信息
  • 完整的消息与文件发送反馈
  • 跨平台兼容性(Windows/Linux/MacOS)
  • 详细的调试信息输出
  • 会话信息查询和管理
  • 实时会话状态监控
  • 自动路径检测,无需手动配置
  • 支持广泛的文件格式(图片、视频、音频、文档、压缩包等)

使用方法

1. 会话查询功能

列出所有活跃会话

当用户要求列出所有会话时,调用 sessions_list 工具:

sessions_list()


#### 找到当前对话
当用户要求找到我们之间的对话时:
# 获取所有会话
sessions_list()
# 过滤出微信渠道的会话
# 找到最新的或与当前对话匹配的会话

获取会话详情

使用 sessions_list 的参数来获取更详细的信息:

获取最近活跃的会话

sessions_list(activeMinutes=60, messageLimit=5)


### 2. 主动消息发送功能

#### 命令行调用方式

python scripts/main_send_msg


#### 示例

python scripts/main_send_msg "6e2f83e62b99-im-bot" "这是发送的消息"


### 3. 文件发送功能 (新增)

本技能提供两种核心文件发送场景:

#### 场景一:微信文件自我发送
- **使用场景**:当用户要求将某个文件(如截图、结果文件等)通过微信发送给自己时触发。
- **执行流程**:
  1.  通过微信会话查询功能,确认当前会话对应的机器人账号。
  2.  理解用户需要发送的文件(由用户提供或根据上下文生成)。
  3.  调用文件发送程序,将文件发送至用户微信。

#### 场景二:微信文件推送发送
- **使用场景**:当用户要求将某个文件通过微信发送给指定机器人时触发。
- **执行流程**:
  1.  解析用户指令,确认需要发送的文件。
  2.  调用文件发送程序,将文件发送至目标机器人账号。

#### 命令行调用方式

发送图片

python scripts/main_send_file.py "XXXXXXX-im-bot" "/home/测试图片.jpg"

发送视频

python scripts/main_send_file.py "XXXXXXX-im-bot" "/home/测试视频.mp4"

发送文档

python scripts/main_send_file.py "XXXXXXX-im-bot" "/home/测试文档.pdf"

发送音频

python scripts/main_send_file.py "XXXXXXX-im-bot" "/home/测试音频.mp3"


#### 触发条件
当同时满足以下条件时,文件发送功能将被自动调用:
1.  用户通过微信发送的消息**非纯文本**。
2.  消息中**携带附件**(如图片、视频、文档等)。
3.  用户明确要求"通过微信发送文件"或表达类似意图。

## 参数说明

### 1. 会话查询参数
| 参数名称 | 类型 | 描述 | 默认值 |
| :--- | :--- | :--- | :--- |
| `activeMinutes` | 整数 | 查询指定分钟内活跃的会话 | 60 |
| `messageLimit` | 整数 | 每个会话返回的消息数量 | 5 |

### 2. 消息发送参数
#### 命令行参数
| 参数名称 | 类型 | 描述 | 必填 |
| :--- | :--- | :--- | :--- |
| `account_id` | 字符串 | 微信账号唯一标识符(如:`6e2f83e62b99-im-bot`) | ✅ 是 |
| `message` | 字符串 | 要发送的文本消息内容 | ✅ 是 |

### 3. 文件发送参数 (新增)
#### 命令行参数
| 参数名称 | 类型 | 描述 | 必填 |
| :--- | :--- | :--- | :--- |
| `account_id` | 字符串 | 微信账号唯一标识符(如:`XXXXXXX-im-bot`) | ✅ 是 |
| `file_path` | 字符串 | 待发送文件的完整本地路径 | ✅ 是 |

## 注意事项

### 使用前准备
1.  **环境配置**:确保已正确安装 OpenClaw 并完成微信账号登录。
2.  **账号配置**:确保账号ID对应的配置文件存在于正确的位置。
3.  **依赖安装**:确保已安装所需的 Python 依赖包(`requests`, `uuid`, `pathlib` 等)。

### 使用限制
1.  **消息格式**:支持文本消息和多种格式的文件发送。
2.  **频率限制**:请遵守微信API的调用频率限制,避免频繁发送。
3.  **账号状态**:确保账号处于正常登录状态。
4.  **权限控制**:发送消息和文件需要对应的权限配置。
5.  **文件限制**:目前不支持发送整个文件夹,文件需携带完整路径。

### 约束与限制 (新增)
#### 文件大小建议
| 文件类型 | 建议大小上限 |
| :--- | :--- |
| 图片 | ≤ 10 MB |
| 视频 | ≤ 20 MB |
| 其他文件 | ≤ 50 MB |

> 注:实际文件大小限制以微信官方API规定为准,超过限制可能导致发送失败。

#### 已测试支持的文件格式
- 图片:jpg, png, gif, bmp 等
- 视频:mp4, mov, avi 等
- 音频:mp3, wav, m4a 等
- 文档:pdf, doc, docx, xls, xlsx, ppt, pptx, txt 等
- 压缩文件:zip, rar, 7z 等

### 配置文件位置
账号配置文件默认存放在以下位置:
- Windows: `C:\Users\用户名\.openclaw\openclaw-weixin\accounts`
- Linux/MacOS: `~/.openclaw/openclaw-weixin/accounts`

### 自动路径检测
技能现在通过 `get_openclaw_path()` 函数实现自动路径检测:
1.  优先检测环境变量 `OPENCLAW_STATE_DIR`
2.  如果未设置环境变量,使用默认路径
3.  支持 Windows、Linux 和 macOS 平台

### 错误处理
常见错误及解决方法:

| 错误类型 | 可能原因 | 解决方法 |
| :--- | :--- | :--- |
| 路径不存在 | OpenClaw路径配置错误 | 检查 OpenClaw 是否正确安装 |
| 配置文件缺失 | 账号ID不存在或配置文件损坏 | 重新登录微信账号 |
| 网络请求异常 | 网络连接失败或API地址错误 | 检查网络连接和API地址配置 |
| 权限验证失败 | Token失效或权限不足 | 重新获取身份验证令牌 |
| 文件发送失败 (新增) | 文件路径错误、网络异常、API返回非零状态码、文件类型不支持或大小超限 | 检查文件路径与网络,查看错误日志,确认文件格式与大小 |

## 示例输出

### 会话查询示例
**sessions_list 返回示例:**

{

"sessions": [

{

"sessionKey": "openclaw-weixin:xxxxxxxx-22f75d8b",

"kind": "openclaw-weixin",

"lastMessage": "检查微信助手的账号ID",

"lastMessageTime": "2026-04-01T17:12:00Z"

}

]

}


### 消息发送示例
**成功发送文本消息的输出:**

==================================================

【微信消息发送测试】

目标用户: xxxxxxxx

客户端ID: openclaw-weixin:1735114630-abc123def

上下文Token: xxxxxxxx-22f75d8b


HTTP 状态码: 200

API 返回码 (ret): 0

✅ 消息发送成功!

服务器响应详情:

{

"ret": 0,

"msg": "success",

"data": {}

}

==================================================


### 文件发送示例 (新增)
**成功发送文件的输出:**
  1. 准备上传参数...

准备成功,filekey: a1b2c3d4e5f67890..., aeskey: 0011223344556677...

  1. 申请上传参数...

获取到upload_param: xyz123abc456def789...

  1. 加密文件...

加密完成,原始大小: 102400, 加密后大小: 102416

  1. 上传到CDN...

上传成功,encrypt_query_param: enc_param_abc123def456...

  1. 发送文件...

HTTP 状态码: 200

API 返回码 (ret): 0

✅ 文件发送成功!

服务器响应详情:

{

"ret": 0,

"msg": "success",

"data": {}

}


## 版本历史
| 版本 | 更新日期 | 更新内容 |
| :--- | :--- | :--- |
| 4.0.0 | 2026-04-03 | **新增文件发送功能**,支持图片、视频、音频、文档、压缩文件等多种格式文件发送。 |
| 3.0.0 | 2026-04-02 | 新增主动消息发送功能,支持向指定用户发送消息;添加自动路径检测功能 |
| 2.0.0 | 2026-04-01 | 改用sessions_list工具查询会话信息 |
| 1.0.0 | 2026-04-01 | 初始版本发布,支持微信账号信息查询 |

## 技术说明

### 工作原理
#### 会话查询原理
1.  调用 OpenClaw 的 sessions_list 工具
2.  获取所有活跃会话信息
3.  过滤出微信渠道的会话
4.  返回会话详细信息

#### 消息发送原理
1.  根据账号ID查找对应的配置文件
2.  读取配置文件中的连接参数
3.  构建符合微信API规范的请求
4.  发送HTTP请求到微信后端
5.  处理响应并显示结果

#### 文件发送原理 (新增)
1.  根据账号ID查找对应的配置文件,获取必要的连接参数。
2.  读取并验证本地文件,进行加密和上传参数准备。
3.  将文件上传至CDN,获取文件访问参数。
4.  调用微信API,发送包含文件访问信息的消息到指定会话。
5.  处理API响应,返回发送结果。

#### 自动路径检测原理

def get_openclaw_path():

"""获取OpenClaw安装路径,支持Windows、Linux、MacOS"""

# 优先使用环境变量指定的路径

state_dir = os.environ.get('OPENCLAW_STATE_DIR')

if state_dir and os.path.exists(state_dir):

return Path(state_dir)

# 默认路径

home = Path.home()

if sys.platform == 'win32':

# Windows: C:\Users\用户名\.openclaw

return home / '.openclaw'

else:

# Linux/MacOS: ~/.openclaw

return home / '.openclaw'

### 架构设计

┌─────────────────┐ ┌──────────────────┐ ┌──────────────────┐

│ 会话查询模块 │ │ 账号信息查询 │────▶│ 消息发送模块 │

└─────────────────┘ └──────────────────┘ └──────────────────┘

▲ ▲ ▲

│ │ │

▼ ▼ ▼

┌─────────────────┐ ┌──────────────────┐ ┌──────────────────┐

│ 错误处理 │ │ 配置文件管理 │ │ 网络请求处理 │

└─────────────────┘ └──────────────────┘ └──────────────────┘

▲ ▲ ▲

│ │ │

▼ ▼ ▼

┌─────────────────┐ ┌──────────────────┐ ┌──────────────────┐

│ 自动路径检测 │ │ 环境变量检测 │ │ 文件处理模块(新增)│

└─────────────────┘ └──────────────────┘ └──────────────────┘

### 核心依赖
- `requests`: HTTP请求库
- `json`: JSON数据处理
- `time`: 时间戳管理
- `base64`: 编码解码
- `os`: 操作系统交互
- `uuid`: 唯一ID生成
- `pathlib`: 路径管理
- `sys`: 系统级操作

## 部署说明
### 1. 目录结构

wechat-account-send/
├── SKILL.md                 # 技能文档
├── scripts/
│   ├── main_send_msg        # 文本消息发送主程序
│   └── main_send_file.py    # (新增) 文件发送主程序
└── (其他配置文件)

### 2. 自动路径检测
技能现在支持自动路径检测,无需手动配置环境变量。但如果需要自定义 OpenClaw 路径,可以设置以下环境变量:

Windows

set OPENCLAW_STATE_DIR=C:\path\to\your\openclaw

Linux/MacOS

export OPENCLAW_STATE_DIR=/path/to/your/openclaw


## 安全注意事项
1.  **配置文件保护**:账号配置文件包含敏感信息,请勿泄露。
2.  **代码执行安全**:确保脚本来源可信,避免执行恶意代码。
3.  **API权限控制**:定期检查和更新API权限配置。
4.  **文件安全**:发送文件时,请确保文件来源安全可靠,不包含恶意内容。

## 使用场景
### 原始功能使用场景
- 检查微信助手的会话信息
- 找到当前对话的 sessionKey
- 查询所有活跃的会话列表
- 监控会话的实时状态
- 自动向微信用户发送通知或提醒文本消息

### 新增功能使用场景 (文件发送)
- 将本地生成的截图、报告、日志文件通过微信发送给自己。
- 将处理完成的图片、视频、音频或文档发送给指定的同事或机器人账号。
- 集成到自动化流程中,自动推送生成的文件结果。

---

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-03 08:56 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

design-media

ai-photo-pro

lianghaoxun
调用 NVIDIA NIM 或 SiliconFlow API 生成图片(支持 Kolors/Qwen-Image/flux.2-klein-4b)。触发词:生成图片/画图/AI绘图。返回图片路径。
★ 0 📥 404
ai-agent

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,406 📥 324,518
ai-agent

Find Skills

guipi888
场景驱动+关键词双模式技能发现工具。当用户用自然语言描述场景/需求(如"我想做一个海报""帮我分析股票"),或明确说"安装技能/find skills/找个skill"时,自动从官方内置、本地已安装、SkillHub、虾评、GitHub、C
★ 1,490 📥 553,695