External Receiver
从外部接收文件 / 消息 → 推送到 OpenClaw 会话
功能
- - 🌐 启动 HTTP 服务器(监听端口)
- 📁 接收文件上传(multipart/form-data)
- 💬 接收文本/JSON 消息
- → 自动转发到 OpenClaw 当前会话
快速使用
CODEBLOCK0
端点
| 方法 | 路径 | 说明 |
|---|
| GET | INLINECODE0 | 服务状态页 |
| GET |
/health | 健康检查 |
| POST |
/upload | 上传文件 |
| POST |
/message | 发送文本消息 |
| POST |
/webhook | 接收 JSON Webhook |
| GET |
/download/<filename> | 下载已接收文件 |
API 详情
上传文件
CODEBLOCK1
响应:
CODEBLOCK2
发送文本消息
CODEBLOCK3
或 JSON:
CODEBLOCK4
OpenClaw 收到推送后自动显示
CODEBLOCK5
配置
CODEBLOCK6
安全建议
- - ✅ 生产环境务必设置
RECEIVER_SECRET 并在请求时附带 - ✅ 使用防火墙限制只开放 8080 端口给信任的 IP
- ✅ 定期清理
received/ 目录中的文件
Python 调用示例
CODEBLOCK7
External Receiver
从外部接收文件 / 消息 → 推送到 OpenClaw 会话
功能
- - 🌐 启动 HTTP 服务器(监听端口)
- 📁 接收文件上传(multipart/form-data)
- 💬 接收文本/JSON 消息
- → 自动转发到 OpenClaw 当前会话
快速使用
bash
clawhub install external-receiver
cd skills/external-receiver
bash scripts/start.sh # 启动接收服务
端点
/health | 健康检查 |
| POST | /upload | 上传文件 |
| POST | /message | 发送文本消息 |
| POST | /webhook | 接收 JSON Webhook |
| GET | /download/
| 下载已接收文件 |
API 详情
上传文件
bash
curl -X POST http://你的服务器:8080/upload \
-F file=@/path/to/file.txt
响应:
json
{
ok: true,
filename: file.txt,
size: 12345,
path: /home/user/.openclaw/workspace/received/file.txt
}
发送文本消息
bash
curl -X POST http://你的服务器:8080/message \
-d text=Hello from outside!
或 JSON:
bash
curl -X POST http://你的服务器:8080/webhook \
-H Content-Type: application/json \
-d {text: Webhook message, from: external-system}
OpenClaw 收到推送后自动显示
📥 收到外部消息:
Hello from outside!
📎 收到文件:
file.txt (12KB)
路径: /home/user/.openclaw/workspace/received/file.txt
配置
bash
环境变量
export RECEIVER_PORT=8080 # 监听端口(默认 8080)
export RECEIVER_HOST=0.0.0.0 # 监听地址(默认 0.0.0.0)
export RECEIVER_DIR=/home/user/received # 文件存储目录
export RECEIVERSECRET=yoursecret_key # 访问密钥(可选)
安全建议
- - ✅ 生产环境务必设置 RECEIVER_SECRET 并在请求时附带
- ✅ 使用防火墙限制只开放 8080 端口给信任的 IP
- ✅ 定期清理 received/ 目录中的文件
Python 调用示例
python
import requests
发送消息
requests.post(http://服务器:8080/message, data={text: 警报:价格突破})
上传文件
with open(report.pdf, rb) as f:
requests.post(http://服务器:8080/upload, files={file: f})
Webhook 方式
requests.post(http://服务器:8080/webhook, json={
event: trade,
symbol: BTC/USDT,
side: buy,
amount: 0.01
})