From fe7e0a8c1d9913d9cc54e71ec0748f046e5b6bfc Mon Sep 17 00:00:00 2001 From: SHL0MS Date: Thu, 9 Apr 2026 12:30:45 -0400 Subject: [PATCH] docs(feishu): add permission scopes, event subscription, and publish steps The setup guide was missing the specific Feishu permission scopes to configure and the event subscription (im.message.receive_v1) needed for the bot to receive messages. Users had to reference external OpenClaw documentation to complete the setup. Adds: - Required permissions table (im:message, im:message:send_as_bot, im:resource, im:chat, im:chat:readonly) - Recommended permissions (reactions, app info, contact) - Event subscription step (im.message.receive_v1) - App version publish reminder (permissions require published version) --- website/docs/user-guide/messaging/feishu.md | 34 +++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/website/docs/user-guide/messaging/feishu.md b/website/docs/user-guide/messaging/feishu.md index 802f1d44f..256074fa2 100644 --- a/website/docs/user-guide/messaging/feishu.md +++ b/website/docs/user-guide/messaging/feishu.md @@ -55,6 +55,40 @@ If scan-to-create is not available, the wizard falls back to manual input: Keep the App Secret private. Anyone with it can impersonate your app. ::: +### Configure Permissions + +In the Feishu developer console, go to **Permission Management** and add the following scopes. You can bulk-import them in the permissions page. + +**Required permissions:** + +| Scope | Purpose | +|-------|---------| +| `im:message` | Receive and read messages | +| `im:message:send_as_bot` | Send messages as the bot | +| `im:resource` | Access images, files, and audio sent by users | +| `im:chat` | Access chat/group metadata | +| `im:chat:readonly` | Read chat list and membership | + +**Recommended permissions (for full functionality):** + +| Scope | Purpose | +|-------|---------| +| `im:message.reactions:readonly` | Receive emoji reaction events | +| `admin:app.info:readonly` | Auto-detect bot identity for @mention gating | +| `contact:user.id:readonly` | Resolve user IDs for allowlist matching | + +### Configure Events + +In **Events and Callbacks**: + +1. Set the connection mode to **Long Connection (WebSocket)** (recommended) or configure a webhook URL +2. In the **Event Configuration** section, subscribe to: + - `im.message.receive_v1` — required for receiving messages + +### Publish the App + +After configuring permissions and events, go to **Version Management** and publish a new version of the app. The permissions won't take effect until a version is published and approved (for enterprise apps, this may require admin approval). + ## Step 2: Choose a Connection Mode ### Recommended: WebSocket mode