Skip to content

飞书应用配置详解

本文档详细介绍如何在飞书开放平台创建和配置应用,以及飞书通道的访问控制设置。这是 Docker Compose + 飞书部署指南 的配套文档。


创建飞书应用

1. 登录飞书开放平台

访问 飞书开放平台 并登录。

如果使用 Lark(国际版),请访问 https://open.larksuite.com/app。

2. 创建企业自建应用

  1. 点击 创建企业自建应用
  2. 填写应用名称(如 "OpenClaw Bot")和描述
  3. 选择应用图标

3. 获取凭据

凭证与基础信息 中,复制以下信息并填入 .env 文件:

  • App ID(格式:cli_xxx
  • App Secret

重要:App Secret 必须保密,切勿泄露。

4. 配置权限

权限管理 中,点击 批量导入 并粘贴以下 JSON:

json
{
  "scopes": {
    "tenant": [
      "aily:file:read",
      "aily:file:write",
      "application:application.app_message_stats.overview:readonly",
      "application:application:self_manage",
      "application:bot.menu:write",
      "contact:user.employee_id:readonly",
      "corehr:file:download",
      "event:ip_list",
      "im:chat.access_event.bot_p2p_chat:read",
      "im:chat.members:bot_access",
      "im:message",
      "im:message.group_at_msg:readonly",
      "im:message.p2p_msg:readonly",
      "im:message:readonly",
      "im:message:send_as_bot",
      "im:resource"
    ],
    "user": [
      "aily:file:read",
      "aily:file:write",
      "im:chat.access_event.bot_p2p_chat:read"
    ]
  }
}

注意:权限变更后需要创建并发布新版本才能生效。

5. 启用机器人能力

应用功能 > 机器人 中:

  1. 启用机器人能力
  2. 设置机器人名称

6. 配置事件订阅

⚠️ 重要:配置事件订阅前,必须确保 OpenClaw 网关已启动且正在运行。如果网关未运行,长连接设置将无法保存,导致配置失败。

验证网关状态:

bash
docker compose logs -f

确认日志中出现 [gateway] listening[feishu] connected 将在事件订阅配置完成后出现。

事件订阅 中:

  1. 选择 使用长连接接收事件(WebSocket)— 无需公网 webhook URL
  2. 添加事件:im.message.receive_v1

7. 发布应用

  1. 版本管理与发布 中创建版本
  2. 提交审核并发布
  3. 等待管理员批准(企业自建应用通常自动批准)

访问控制

私聊策略(dmPolicy)

私聊策略通过 channels.feishu.dmPolicy 配置:

行为
"pairing"默认。 未知用户收到配对码,需管理员批准后才能使用
"allowlist"allowFrom 列表中的用户可以私聊
"open"允许所有用户(需在 allowFrom 中设置 "*"
"disabled"禁用私聊

配对模式示例(默认):

json5
{
  "channels": {
    "feishu": {
      "dmPolicy": "pairing"
    }
  }
}

白名单模式示例

json5
{
  "channels": {
    "feishu": {
      "dmPolicy": "allowlist",
      "allowFrom": ["ou_xxx", "ou_yyy"]
    }
  }
}

群组策略(groupPolicy)

群组策略通过 channels.feishu.groupPolicy 配置:

行为
"open"默认。 允许群组中所有人使用
"allowlist"groupAllowFrom 列表中的用户可在群组中使用
"disabled"禁用群组消息

@提及要求:默认情况下,群组中需要 @提及机器人才会响应。可通过 groups.<chat_id>.requireMention 修改:

json5
{
  "channels": {
    "feishu": {
      "groupPolicy": "open",
      "groups": {
        "oc_xxx": {
          "requireMention": false  // 该群无需 @提及即可响应
        }
      }
    }
  }
}

群组白名单示例

json5
{
  "channels": {
    "feishu": {
      "groupPolicy": "allowlist",
      "groupAllowFrom": ["ou_xxx", "ou_yyy"]
    }
  }
}

获取群组/用户 ID

群组 ID(chat_id) 格式为 oc_xxx

  1. 启动网关并在群组中 @提及机器人
  2. 查看日志中的 chat_iddocker compose logs -f

用户 ID(open_id) 格式为 ou_xxx

  1. 启动网关并向机器人发送私聊消息
  2. 查看日志中的 open_iddocker compose logs -f
  3. 或查看配对请求:docker compose exec openclaw openclaw pairing list feishu

Lark 国际版

如果您的租户使用 Lark 国际版,需修改配置中的域名:

json5
{
  "channels": {
    "feishu": {
      "domain": "lark",
      "accounts": {
        "main": {
          "appId": "cli_xxx",
          "appSecret": "xxx",
          "botName": "OpenClaw"
        }
      }
    }
  }
}

也可以在单个账户级别覆盖域名:

json5
{
  "channels": {
    "feishu": {
      "accounts": {
        "main": {
          "appId": "cli_xxx",
          "appSecret": "xxx",
          "domain": "lark"
        }
      }
    }
  }
}

Lark 国际版用户请访问 https://open.larksuite.com/app 创建应用。


多账户

支持在同一实例中配置多个飞书应用:

json5
{
  "channels": {
    "feishu": {
      "accounts": {
        "main": {
          "appId": "cli_xxx",
          "appSecret": "xxx",
          "botName": "主机器人"
        },
        "backup": {
          "appId": "cli_yyy",
          "appSecret": "yyy",
          "botName": "备用机器人",
          "enabled": false
        }
      }
    }
  }
}

可通过 enabled: false 临时禁用某个账户,而无需删除配置。


返回