OpenClaw + Feishu 集成实战:打造企业级 AI 助手

9 阅读4分钟

OpenClaw + Feishu 集成实战:打造企业级 AI 助手

系列文章: 《OpenClaw 从入门到精通》第 6 期
难度等级: ⭐⭐⭐⭐
预计耗时: 40 分钟


🎯 本文目标

学会将 OpenClaw 与飞书集成:

  • ✅ 发送消息通知
  • ✅ 创建文档
  • ✅ 管理群聊
  • ✅ 自动化工作流

📚 前置准备

1. 飞书开放平台

访问:open.feishu.cn/

2. 创建应用

  1. 进入「企业应用」
  2. 点击「创建应用」
  3. 填写应用信息
  4. 获取 App ID 和 App Secret

3. 配置权限

需要的权限:

  • 发送消息
  • 读取/写入文档
  • 群组管理
  • 机器人功能

🔧 基础配置

1. 配置飞书集成

from openclaw import FeishuIntegration

feishu = FeishuIntegration(
    app_id="cli_xxxxxxxxx",
    app_secret="xxxxxxxxx",
    bot_name="AI 助手"
)

feishu.connect()

2. 测试连接

openclaw "测试飞书连接"

预期输出:

✅ 飞书连接成功
应用名称:AI 助手
可用功能:消息、文档、群聊

💻 实战案例

案例 1:发送消息通知

openclaw "
发送飞书消息:
- 接收人:张三
- 内容:项目进度更新
- 类型:文本
"

代码实现:

feishu.send_message(
    user_id="ou_xxxxx",
    message="项目进度更新:已完成 80%",
    msg_type="text"
)

案例 2:发送富文本消息

feishu.send_rich_message(
    user_id="ou_xxxxx",
    content=[
        {"tag": "text", "text": "项目提醒:"},
        {"tag": "a", "text": "查看详情", "href": "https://..."},
        {"tag": "at", "user_id": "ou_xxxxx"}
    ]
)

案例 3:群消息推送

openclaw "
在项目组群里发送日报:
- 群名:项目攻坚组
- 内容:今日完成情况
- @所有人
"

实现:

feishu.send_group_message(
    chat_id="oc_xxxxx",
    message="今日完成:\n1. 功能开发\n2. 单元测试",
    mention_all=True
)

📄 文档自动化

1. 创建文档

openclaw "
创建飞书文档:
- 标题:项目周报
- 内容:本周工作总结
- 文件夹:项目组
"

代码:

doc = feishu.create_doc(
    title="项目周报",
    content="# 本周工作总结\n\n## 完成情况\n- 功能 A\n- 功能 B",
    folder_token="xxxxx"
)

2. 更新文档

feishu.update_doc(
    doc_token="xxxxx",
    content="\n## 新增内容\n- 功能 C"
)

3. 文档协作

# 添加协作者
feishu.share_doc(
    doc_token="xxxxx",
    user_ids=["ou_1", "ou_2"],
    permission="edit"  # 可编辑
)

# 设置权限
feishu.set_doc_permission(
    doc_token="xxxxx",
    public="organization"  # 组织内可见
)

🤖 机器人集成

1. 创建机器人

openclaw "
创建飞书机器人:
- 名称:AI 小助手
- 功能:自动回复
- 关键词:帮助、状态、报告
"

配置:

bot = feishu.create_bot(
    name="AI 小助手",
    keywords=["帮助", "状态", "报告"],
    auto_reply=True
)

2. 自动回复

@bot.on_keyword("帮助")
def help_handler(message):
    return """
🤖 AI 小助手功能:
1. 发送 /状态 查看系统状态
2. 发送 /报告 生成日报
3. 发送 /帮助 查看帮助
"""

@bot.on_keyword("状态")
def status_handler(message):
    return get_system_status()

📊 数据报表

1. 自动生成日报

openclaw "
每天下午 6 点自动生成日报:
- 收集今日工作
- 生成飞书文档
- 发送到项目组
"

实现:

daily_report = CronTask(
    name="daily_report",
    schedule="0 18 * * *",
    action="generate_feishu_report",
    params={
        "collect_from": ["git", "tasks"],
        "send_to": "project_group",
        "format": "feishu_doc"
    }
)

2. 周报汇总

weekly_summary = CronTask(
    name="weekly_summary",
    schedule="0 17 * * 5",  # 周五 17 点
    action="weekly_report",
    steps=[
        "collect_daily_reports",
        "analyze_metrics",
        "generate_ppt",
        "send_to_management"
    ]
)

🎓 高级功能

1. 消息卡片

card = {
    "config": {
        "wide_screen_mode": True
    },
    "header": {
        "title": {
            "tag": "plain_text",
            "content": "项目进度提醒"
        },
        "template": "blue"
    },
    "elements": [
        {
            "tag": "div",
            "text": {
                "tag": "lark_md",
                "content": "**项目名称:** AI 助手\n**进度:** 80%\n**负责人:** 张三"
            }
        },
        {
            "tag": "action",
            "actions": [
                {
                    "tag": "button",
                    "text": {
                        "tag": "plain_text",
                        "content": "查看详情"
                    },
                    "url": "https://..."
                }
            ]
        }
    ]
}

feishu.send_card(card)

2. 交互式消息

# 带按钮的消息
feishu.send_interactive_message(
    content="需要审批吗?",
    actions=[
        {"text": "同意", "value": "approve"},
        {"text": "拒绝", "value": "reject"}
    ],
    callback=handle_approval
)

3. 文件上传

# 上传文件
feishu.upload_file(
    file_path="/path/to/file.pdf",
    file_name="报告.pdf",
    send_to="ou_xxxxx"
)

# 上传图片
feishu.upload_image(
    image_path="/path/to/image.png",
    send_to="chat_xxxxx"
)

⚠️ 注意事项

1. 权限管理

# 最小权限原则
permissions = [
    "message:send",      # 发送消息
    "doc:read",          # 读取文档
    "doc:write"          # 写入文档
]
# 避免申请不必要的权限

2. 频率限制

# 飞书 API 限流
# 消息发送:100 次/秒
# 文档操作:50 次/秒

# 添加重试逻辑
@retry(times=3, delay=1)
def send_message_safe(...):
    feishu.send_message(...)

3. 错误处理

try:
    feishu.send_message(...)
except FeishuError as e:
    if e.code == 99991666:
        # 权限不足
        logger.error("需要配置权限")
    elif e.code == 99991663:
        # 频率限制
        time.sleep(1)
        feishu.send_message(...)

📚 本系列预告

期数主题状态
第 6 期OpenClaw + Feishu✅ 已完成
第 7 期源码解析下一篇

觉得有用?点赞 👍 收藏 ⭐ 关注 ➕ 三连支持一下!