From 02d26ced98e2cb639707c9467fa9c452cd547ea6 Mon Sep 17 00:00:00 2001 From: xbsheng Date: Tue, 3 Mar 2026 11:33:41 +0800 Subject: [PATCH] =?UTF-8?q?docs(feishu):=20Feishu=20docs=20=E2=80=93=20add?= =?UTF-8?q?=20verificationToken=20and=20align=20zh-CN=20with=20EN=20(openc?= =?UTF-8?q?law#31555)=20thanks=20@xbsheng?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verified: - pnpm build - pnpm test:macmini - pnpm check (blocked locally by pre-existing mainline lint issue in src/scripts/ci-changed-scope.test.ts unrelated to this PR) Co-authored-by: xbsheng <56357338+xbsheng@users.noreply.github.com> Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com> --- CHANGELOG.md | 1 + docs/channels/feishu.md | 15 ++- docs/images/feishu-verification-token.png | Bin 0 -> 74981 bytes docs/zh-CN/channels/feishu.md | 113 ++++++++++++++++++---- 4 files changed, 106 insertions(+), 23 deletions(-) create mode 100644 docs/images/feishu-verification-token.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 274ca2e9975..e3b641955d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Docs: https://docs.openclaw.ai ### Changes +- Docs/Feishu webhook setup: clarify `verificationToken` configuration with Open Platform navigation steps, and align Feishu sender-allowlist guidance plus zh-CN channel documentation with current runtime behavior. (#31555) - Secrets/SecretRef coverage: expand SecretRef support across the full supported user-supplied credential surface (64 targets total), including runtime collectors, `openclaw secrets` planning/apply/audit flows, onboarding SecretInput UX, and related docs; unresolved refs now fail fast on active surfaces while inactive surfaces report non-blocking diagnostics. (#29580) Thanks @joshavant. - Tools/PDF analysis: add a first-class `pdf` tool with native Anthropic and Google PDF provider support, extraction fallback for non-native models, configurable defaults (`agents.defaults.pdfModel`, `pdfMaxBytesMb`, `pdfMaxPages`), and docs/tests covering routing, validation, and registration. (#31319) Thanks @tyler6204. - Outbound adapters/plugins: add shared `sendPayload` support across direct-text-media, Discord, Slack, WhatsApp, Zalo, and Zalouser with multi-media iteration and chunk-aware text fallback. (#30144) Thanks @nohat. diff --git a/docs/channels/feishu.md b/docs/channels/feishu.md index e20f3f06f88..3158599aa86 100644 --- a/docs/channels/feishu.md +++ b/docs/channels/feishu.md @@ -197,6 +197,17 @@ Edit `~/.openclaw/openclaw.json`: If you use `connectionMode: "webhook"`, set `verificationToken`. The Feishu webhook server binds to `127.0.0.1` by default; set `webhookHost` only if you intentionally need a different bind address. +#### Verification Token (webhook mode) + +When using webhook mode, set `channels.feishu.verificationToken` in your config. To get the value: + +1. In Feishu Open Platform, open your app +2. Go to **Development** → **Events & Callbacks** (开发配置 → 事件与回调) +3. Open the **Encryption** tab (加密策略) +4. Copy **Verification Token** + +![Verification Token location](../images/feishu-verification-token.png) + ### Configure via environment variables ```bash @@ -359,9 +370,9 @@ After approval, you can chat normally. } ``` -### Allow specific users to run control commands in a group (e.g. /reset, /new) +### Restrict which senders can message in a group (sender allowlist) -In addition to allowing the group itself, control commands are gated by the **sender** open_id. +In addition to allowing the group itself, **all messages** in that group are gated by the sender open_id: only users listed in `groups..allowFrom` have their messages processed; messages from other members are ignored (this is full sender-level gating, not only for control commands like /reset or /new). ```json5 { diff --git a/docs/images/feishu-verification-token.png b/docs/images/feishu-verification-token.png new file mode 100644 index 0000000000000000000000000000000000000000..0d6d72d104097d236f388899327ad3ab4dae8dc4 GIT binary patch literal 74981 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%0D(5RQqYe^siwA^>i5!N)igERZ( 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 KTaNs%>HiB9(&gd+ literal 0 HcmV?d00001 diff --git a/docs/zh-CN/channels/feishu.md b/docs/zh-CN/channels/feishu.md index ff569c20e2f..4cc8b578a6a 100644 --- a/docs/zh-CN/channels/feishu.md +++ b/docs/zh-CN/channels/feishu.md @@ -201,6 +201,19 @@ openclaw channels add } ``` +若使用 `connectionMode: "webhook"`,需设置 `verificationToken`。飞书 Webhook 服务默认绑定 `127.0.0.1`;仅在需要不同监听地址时设置 `webhookHost`。 + +#### 获取 Verification Token(仅 Webhook 模式) + +使用 Webhook 模式时,需在配置中设置 `channels.feishu.verificationToken`。获取方式: + +1. 在飞书开放平台打开您的应用 +2. 进入 **开发配置** → **事件与回调** +3. 打开 **加密策略** 选项卡 +4. 复制 **Verification Token**(校验令牌) + +![Verification Token 位置](/images/feishu-verification-token.png) + ### 通过环境变量配置 ```bash @@ -228,6 +241,34 @@ export FEISHU_APP_SECRET="xxx" } ``` +### 配额优化 + +可通过以下可选配置减少飞书 API 调用: + +- `typingIndicator`(默认 `true`):设为 `false` 时不发送“正在输入”状态。 +- `resolveSenderNames`(默认 `true`):设为 `false` 时不拉取发送者资料。 + +可在渠道级或账号级配置: + +```json5 +{ + channels: { + feishu: { + typingIndicator: false, + resolveSenderNames: false, + accounts: { + main: { + appId: "cli_xxx", + appSecret: "xxx", + typingIndicator: true, + resolveSenderNames: false, + }, + }, + }, + }, +} +``` + --- ## 第三步:启动并测试 @@ -280,7 +321,7 @@ openclaw pairing approve feishu <配对码> **1. 群组策略**(`channels.feishu.groupPolicy`): - `"open"` = 允许群组中所有人(默认) -- `"allowlist"` = 仅允许 `groupAllowFrom` 中的用户 +- `"allowlist"` = 仅允许 `groupAllowFrom` 中的群组 - `"disabled"` = 禁用群组消息 **2. @提及要求**(`channels.feishu.groups..requireMention`): @@ -321,14 +362,36 @@ openclaw pairing approve feishu <配对码> } ``` -### 仅允许特定用户在群组中使用 +### 仅允许特定群组 ```json5 { channels: { feishu: { groupPolicy: "allowlist", - groupAllowFrom: ["ou_xxx", "ou_yyy"], + // 群组 ID 格式为 oc_xxx + groupAllowFrom: ["oc_xxx", "oc_yyy"], + }, + }, +} +``` + +### 仅允许特定成员在群组中发信(发送者白名单) + +除群组白名单外,该群组内**所有消息**均按发送者 open_id 校验:仅 `groups..allowFrom` 中列出的用户消息会被处理,其他成员的消息会被忽略(此为发送者级白名单,不仅针对 /reset、/new 等控制命令)。 + +```json5 +{ + channels: { + feishu: { + groupPolicy: "allowlist", + groupAllowFrom: ["oc_xxx"], + groups: { + oc_xxx: { + // 用户 open_id 格式为 ou_xxx + allowFrom: ["ou_user1", "ou_user2"], + }, + }, }, }, } @@ -428,12 +491,13 @@ openclaw pairing list feishu ### 多账号配置 -如果需要管理多个飞书机器人: +如果需要管理多个飞书机器人,可配置 `defaultAccount` 指定出站未显式指定 `accountId` 时使用的账号: ```json5 { channels: { feishu: { + defaultAccount: "main", accounts: { main: { appId: "cli_xxx", @@ -578,23 +642,29 @@ openclaw pairing list feishu 主要选项: -| 配置项 | 说明 | 默认值 | -| ------------------------------------------------- | ------------------------------ | --------- | -| `channels.feishu.enabled` | 启用/禁用渠道 | `true` | -| `channels.feishu.domain` | API 域名(`feishu` 或 `lark`) | `feishu` | -| `channels.feishu.accounts..appId` | 应用 App ID | - | -| `channels.feishu.accounts..appSecret` | 应用 App Secret | - | -| `channels.feishu.accounts..domain` | 单账号 API 域名覆盖 | `feishu` | -| `channels.feishu.dmPolicy` | 私聊策略 | `pairing` | -| `channels.feishu.allowFrom` | 私聊白名单(open_id 列表) | - | -| `channels.feishu.groupPolicy` | 群组策略 | `open` | -| `channels.feishu.groupAllowFrom` | 群组白名单 | - | -| `channels.feishu.groups..requireMention` | 是否需要 @提及 | `true` | -| `channels.feishu.groups..enabled` | 是否启用该群组 | `true` | -| `channels.feishu.textChunkLimit` | 消息分块大小 | `2000` | -| `channels.feishu.mediaMaxMb` | 媒体大小限制 | `30` | -| `channels.feishu.streaming` | 启用流式卡片输出 | `true` | -| `channels.feishu.blockStreaming` | 启用块级流式 | `true` | +| 配置项 | 说明 | 默认值 | +| ------------------------------------------------- | --------------------------------- | ---------------- | +| `channels.feishu.enabled` | 启用/禁用渠道 | `true` | +| `channels.feishu.domain` | API 域名(`feishu` 或 `lark`) | `feishu` | +| `channels.feishu.connectionMode` | 事件传输模式(websocket/webhook) | `websocket` | +| `channels.feishu.defaultAccount` | 出站路由默认账号 ID | `default` | +| `channels.feishu.verificationToken` | Webhook 模式必填 | - | +| `channels.feishu.webhookPath` | Webhook 路由路径 | `/feishu/events` | +| `channels.feishu.webhookHost` | Webhook 监听地址 | `127.0.0.1` | +| `channels.feishu.webhookPort` | Webhook 监听端口 | `3000` | +| `channels.feishu.accounts..appId` | 应用 App ID | - | +| `channels.feishu.accounts..appSecret` | 应用 App Secret | - | +| `channels.feishu.accounts..domain` | 单账号 API 域名覆盖 | `feishu` | +| `channels.feishu.dmPolicy` | 私聊策略 | `pairing` | +| `channels.feishu.allowFrom` | 私聊白名单(open_id 列表) | - | +| `channels.feishu.groupPolicy` | 群组策略 | `open` | +| `channels.feishu.groupAllowFrom` | 群组白名单 | - | +| `channels.feishu.groups..requireMention` | 是否需要 @提及 | `true` | +| `channels.feishu.groups..enabled` | 是否启用该群组 | `true` | +| `channels.feishu.textChunkLimit` | 消息分块大小 | `2000` | +| `channels.feishu.mediaMaxMb` | 媒体大小限制 | `30` | +| `channels.feishu.streaming` | 启用流式卡片输出 | `true` | +| `channels.feishu.blockStreaming` | 启用块级流式 | `true` | --- @@ -614,6 +684,7 @@ openclaw pairing list feishu ### 接收 - ✅ 文本消息 +- ✅ 富文本(帖子) - ✅ 图片 - ✅ 文件 - ✅ 音频