安全扫描
OpenClaw
可疑
medium confidence该技能的目的(发送 TTS 语音到飞书)与代码行为匹配,但元数据和 SKILL.md 未完全披露所需的二进制文件/凭据,脚本读取根级配置文件 — 这些不匹配之处在安装前需要谨慎处理。
评估建议
该技能似乎实现了其声明的功能(生成/发送飞书语音消息),但包元数据未完全披露脚本的实际使用情况。安装前:1) 检查 `/root/.openclaw/openclaw.json`,确保您对技能读取该文件或通过环境变量 `FEISHU_APP_ID` 和 `FEISHU_APP_SECRET` 感舒适。2) 验证 TTS 二进制文件 (`/app/openclaw/node_modules/.bin/node-edge-tts`) 和 `curl`、`python3` 的存在和可信度。3) 请求发布者更新元数据,声明所需环境变量和二进制文件,以使技能要求透明。4) 如果需要更强的隔离,使用沙盒/容器运行脚本或创建一个具有有限权限的专用飞书账户。如果无法确认这些项,请视该技能为可疑并避免在敏感主机上安装。...详细分析 ▾
ℹ 用途与能力
技能描述的目的(作为 msg_type=audio 发送 TTS 语音到飞书)与包含的脚本行为匹配。然而,包元数据未声明任何所需环境变量或二进制文件,而脚本明确期望 FEISHU_APP_ID/FEISHU_APP_SECRET(或读取 /root/.openclaw/openclaw.json)并依赖于 curl、python3 和本地 TTS 二进制文件(/app/openclaw/node_modules/.bin/node-edge-tts)。缺失的声明是一种不一致。
✓ 指令范围
SKILL.md 和脚本保持在任务范围内:生成或接受音频,获取飞书租户令牌,使用 file_type=opus 上传,并发送 msg_type=audio。唯一值得注意的指令是自动读取 /root/.openclaw/openclaw.json 以获取飞书凭据,这与 OpenClaw 部署一致,但这是对配置文件的特权读取。
✓ 安装机制
无安装规格(仅指令 + 脚本) — 没有下载或由安装程序写入的内容。脚本捆绑在技能中;没有外部安装 URL 或存档需要评估。
⚠ 凭证需求
脚本需要飞书应用凭据(FEISHU_APP_ID 和 FEISHU_APP_SECRET),如果环境变量未设置,将尝试从 /root/.openclaw/openclaw.json 读取它们。然而,技能元数据未列出任何所需环境变量或主凭据。读取根级 OpenClaw 配置文件可能会在配置结构不同时暴露其他频道凭据;TTS 二进制路径(/app/openclaw/node_modules/.bin/node-edge-tts)和使用系统工具(curl、python3)也未声明。这些省略减少了对技能访问的秘密和系统工具的透明度。
✓ 持久化与权限
该技能不请求持久或始终启用的权限(always:false),也不修改其他技能或系统范围的设置。它在调用时运行并清理临时文件。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.1.02026/3/7
添加 `--transcript` 模式:发送音频气泡 + 转录作为线程回复。添加 `--file` 模式用于现有音频文件。
● 可疑
安装命令 点击复制
官方npx clawhub@latest install feishu-audio-msg
镜像加速npx clawhub@latest install feishu-audio-msg --registry https://cn.clawhub-mirror.com
技能文档
Send TTS audio to Feishu as a playable audio message (msg_type=audio), not a file attachment.
Why This Skill Exists
OpenClaw'smessage tool sends audio as a generic file. Feishu requires a two-step API flow to display it as a playable voice message:
- Upload with
file_type=opus - Send with
msg_type=audio
Quick Usage
bash /root/.openclaw/skills/feishu-audio/scripts/send_audio.sh \
"要说的内容" \
"" \
[voice] # optional, default: zh-CN-XiaoyiNeural
receive_id_type is always chat_id. For group chats use oc_xxx; for DMs use ou_xxx (open_id).Common Voices
| Language | Voice |
|---|---|
| Chinese (F) | zh-CN-XiaoyiNeural (default) |
| Chinese (M) | zh-CN-YunxiNeural |
| English (F) | en-US-AriaNeural |
| English (M) | en-US-GuyNeural |
Credentials
Auto-read from/root/.openclaw/openclaw.json → channels.feishu.accounts.main. No manual setup needed in standard OpenClaw deployments.Two-Step API Flow (for custom integrations)
# Step 1: Upload (file_type=opus is required regardless of actual format)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/files" \
-H "Authorization: Bearer $TOKEN" \
-F "file_type=opus" -F "file_name=voice.opus" -F "file=@audio.mp3"
# → returns file_key
# Step 2: Send (msg_type=audio, NOT file)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"receive_id":"oc_xxx","msg_type":"audio","content":"{\"file_key":"...\"}"}'
Key pitfalls:
file_typemust beopus(notmp3) or upload returns 234001msg_typemust beaudio(notfile) or it shows as attachment
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制