🧪 Skills

Feishu Send File

飞书发送文件技能。当需要通过飞书向用户发送文件附件(HTML、ZIP、PDF、代码文件等非图片/视频的普通文件)时使用。图片和视频用 message tool 的 media

v1.2.0
❤️ 2
⬇️ 514
👁 1
Share

Description


name: feishu-send-file description: 飞书发送文件技能。当需要通过飞书向用户发送文件附件(HTML、ZIP、PDF、代码文件等非图片/视频的普通文件)时使用。图片和视频用 message tool 的 media 参数即可,普通文件必须用本技能的两步流程:先上传获取 file_key,再发送消息。

飞书发送文件

飞书机器人发送普通文件(非图片/视频)需要两步:先上传文件获取 file_key,再用 file_key 发消息。

快速流程

方式一:用脚本(推荐)

python3 scripts/send_file.py <file_path> <open_id> <app_id> <app_secret> [file_name]

参数说明:

  • file_path: 要发送的文件路径(HTML/PDF/ZIP/代码文件等)
  • open_id: 接收者的 open_id(从 inbound_meta 的 chat_id 字段获取,格式为 user:ou_xxx,取 ou_xxx 部分)
  • app_id: 飞书应用 ID(从 openclaw.jsonchannels.feishu.appId 读取)
  • app_secret: 飞书应用密钥(从 openclaw.jsonchannels.feishu.appSecret 读取)
  • file_name: 可选,自定义文件名(不填则用原文件名)

快速获取配置:

# 获取 app_id 和 app_secret
grep -A 2 '"feishu"' /root/.openclaw/openclaw.json | grep -E '(appId|appSecret)'

完整示例:

python3 /root/.openclaw/workspace/skills/feishu-send-file/scripts/send_file.py \
  /root/myfiles/report.html \
  <USER_OPEN_ID> \
  <YOUR_APP_ID> \
  <YOUR_APP_SECRET> \
  report.html

AI 助手使用示例:

# 当需要发送文件给用户时,直接调用脚本
exec(f"""
python3 /root/.openclaw/workspace/skills/feishu-send-file/scripts/send_file.py \\
  {file_path} \\
  {user_open_id} \\
  {app_id} \\
  {app_secret} \\
  {custom_filename}
""")

方式二:手动两步

Step 1 - 上传文件:

TOKEN=$(curl -s -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \
  -H "Content-Type: application/json" \
  -d '{"app_id":"<APP_ID>","app_secret":"<APP_SECRET>"}' | python3 -c "import json,sys; print(json.load(sys.stdin)['tenant_access_token'])")

FILE_KEY=$(curl -s -X POST "https://open.feishu.cn/open-apis/im/v1/files" \
  -H "Authorization: Bearer $TOKEN" \
  -F "file_type=stream" \
  -F "file_name=<文件名>" \
  -F "file=@<文件路径>" | python3 -c "import json,sys; print(json.load(sys.stdin)['data']['file_key'])")

Step 2 - 发送消息:

curl -s -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"receive_id\":\"<OPEN_ID>\",\"msg_type\":\"file\",\"content\":\"{\\\"file_key\\\":\\\"$FILE_KEY\\\"}\"}"

注意事项

  • 图片/视频:直接用 message tool 的 media 参数,不需要本技能
  • 普通文件:必须走本技能的两步流程,直接用 filePath 参数只会显示路径
  • receive_id_type=open_id 对应个人用户;群聊用 chat_id 并替换类型
  • 飞书 file_type 用 stream 适用于所有普通文件类型

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs