feishu-e2e-test
m1heng/clawdbot-feishu/.claude/skills/feishu-e2e-test/SKILL.md
Local E2E debug and test framework for clawd-feishu plugin development. Use when debugging message flow, testing bot responses, verifying Feishu web UI interactions, or performing end-to-end validation of the OpenClaw-Feishu integration during development.
Skill4.2k starsChanged 8 months ago
- Reads credentials
What's in it
- Feishu E2E Test Framework
- Prerequisites
- Important Notes
- agent-browser Usage
- Feishu Web UI Tips
- 1. Use Search (Cmd+K) Instead of Clicking
- 2. Focus Input with "/" Key
- 3. Type Characters One by One
- 4. Chinese Characters Do NOT Work
- 5. Typing Spaces
- 6. Typing Long Strings Efficiently
- 7. Avoid JS eval on Feishu
- 8. Full URLs Work Better Than IDs
- Verifying Tool Calls
- Log Patterns
- Verify Tool Usage
- Common Errors
- Permission Error (99991672)
- Other Log Locations
- Test Workflow
- Testing feishudoc Tool
Tools it asks for
- Bash(agent-browser:*)
--- name: feishu-e2e-test description: Local E2E debug and test framework for clawd-feishu plugin development. Use when debugging message flow, testing bot responses, verifying Feishu web UI interactions, or performing end-to-end validation of the OpenClaw-Feishu integration during development. allowed-tools: Bash(agent-browser:*) --- # Feishu E2E Test Framework Local development testing using `agent-browser` CLI to interact with Feishu web app. ## Prerequisites - Feishu web logged in at `https://feishu.cn/next/messenger` - `agent-browser` CLI available - OpenClaw locally installed - Feishu bot appid/secret given in chat or in .env - User given bot name which will display in Feishu web UI ## Important Notes **Every time you modify extension code, you MUST restart OpenClaw Gateway for changes to take effect.** ```bash # Restart gateway (required after code changes) openclaw gateway restart # Check if gateway is running ps aux | grep openclaw # View gateway logs tail -f ~/.openclaw/logs/gateway.log ``` ## agent-browser Usage Always use `--headed` mode so user can see the browser and help with login: ```bash agent-browser --headed --session feishu-test open "https://feishu.cn/next/messenger" ``` ## Feishu Web UI Tips Feishu web has complex UI that makes direct clicking unreliable. Use these strategies: ### 1. Use Search (Cmd+K) Instead of Clicking Clicking on chat list items often misses or selects wrong item. Use global search: ```bash # Open search agent-browser --session feishu-test press "Meta+k" # Type bot name letter by letter agent-browser --session feishu-test press "o" agent-browser --session feishu-test press "p" agent-browser --session feishu-test press "e" agent-browser --session feishu-test press "n" # Select first result agent-browser --session feishu-test press "Enter" ``` ### 2. Focus Input with "/" Key After entering a chat, press "/" to focus the message input: ```bash agent-browser --session feishu-test press "/" agent-browser --session feishu-test press "Backspace" # Remove the "/" # Then type your message ``` ### 3. Type Characters One by One The `type` command often fails with special characters. Use `press` for each character: ```bash # Instead of: agent-browser type "ping" agent-browser --session feishu-test press "p" agent-browser --session feishu-test press "i" agent-browser --session feishu-test press "n" agent-browser --session feishu-test press "g" ``` ### 4. Chinese Characters Do NOT Work **Chinese characters cannot be typed with `press` command.** Use English only: ```bash # BAD - Chinese won't render for char in $(echo "读取文档" | grep -o .); do agent-browser --session feishu-test press "$char" # Will fail silently done # GOOD - Use English for char in r e a d " " d o c; do agent-browser --session feishu-test press "$char" done ``` ### 5. Typing Spaces Spaces must be quoted as `" "`: ```bash # Type "read doc" for char in r e a d " " d o c; do agent-browser --session feishu-test press "$char" done ``` ### 6. Typing Long Strings Efficiently Use a for loop to type URLs or long text: ```bash # Type a full URL url="https://feishu.cn/docx/YOUR_DOC_TOKEN" for char in $(echo "$url" | grep -o .); do agent-browser --session feishu-test press "$char" 2>/dev/null || true done ``` ### 7. Avoid JS eval on Feishu Do NOT use `eval` to set input values - it can break the page: ```bash # BAD - will corrupt page agent-browser eval "document.activeElement.innerText = 'text'" # GOOD - use keyboard input agent-browser press "t" && agent-browser press "e" ... ``` ### 8. Full URLs Work Better Than IDs When testing document tools, send full URLs rather than just document IDs: ```bash # Better - bot recognizes as document link "https://feishu.cn/docx/YOUR_DOC_TOKEN" # Less reliable - may not trigger tool "read YOUR_DOC_TOKEN" ``` ## Verifying Tool Calls ### Log Patterns Monitor gateway logs to verify tool execution: ```bash tail -f ~/.openclaw/logs/gateway.log ``` Key log entries: - `[feishu] received message from ...` - incoming message - `[feishu] dispatching to agent` - sent to agent - `[feishu] added typing indicator reaction` - bot is processing - `[feishu] deliver called: text=...` - agent response - `[feishu] dispatch complete` - response sent ### Verify Tool Usage Ask bot explicitly to confirm tool usage: ``` use feishu_doc tool to read YOUR_DOC_TOKEN ``` Look for confirmation in response like: > "我已经用 **Feishu Doc Tool** 读过了这个文档" ## Common Errors ### Permission Error (99991672) ``` Access denied. One of the following scopes is required: [contact:contact.base:readonly...] ``` This means bot lacks contact permission. Doesn't affect core messaging but prevents resolving sender names. ### Other Log Locations ```bash # Error logs tail -f ~/.openclaw/logs/gateway.err.log # All log files ls -la ~/.openclaw/logs/ # Raw agent session records (tool calls, responses, etc.) ls ~/.openclaw/agents/main/sessions/ # View specific session cat ~/.openclaw/agents/main/sessions/<session-id>.json ``` ## Test Workflow 1. Start browser: `agent-browser --headed --session feishu-test open "https://feishu.cn/next/messenger"` 2. User scans QR to login 3. Search for bot: `Cmd+K` → type bot name → `Enter` 4. Focus input: press `/` then `Backspace` 5. Type message (English only, letter by letter) 6. Press `Enter` to send 7. Wait 10-20 seconds for response 8. Take screenshot and check logs to verify ## Testing feishu_doc Tool ```bash # 1. Focus input agent-browser --session feishu-test press "/" && \ agent-browser --session feishu-test press "Backspace" # 2. Type full doc URL url="https://feishu.cn/docx/YOUR_DOC_ID" for char in $(echo "$url" | grep -o .); do agent-browser --session feishu-test press "$char" 2>/dev/null || true done # 3. Send agent-browser --session feishu-test press "Enter" # 4. Wait and check logs sleep 15 && tail -30 ~/.openclaw/logs/gateway.log ```
More agent context in m1heng/clawdbot-feishu
12 other files this repository gives its agents.
CLAUDE.md
Skill
- agent-browser.agents/skills/agent-browser/SKILL.md
- release.claude/skills/release/SKILL.md
- feishu-chatskills/feishu-chat/SKILL.md
- feishu-docskills/feishu-doc/SKILL.md
- feishu-driveskills/feishu-drive/SKILL.md
- feishu-messageskills/feishu-message/SKILL.md
- feishu-permskills/feishu-perm/SKILL.md
- feishu-reactionskills/feishu-reaction/SKILL.md
- feishu-taskskills/feishu-task/SKILL.md
- feishu-urgentskills/feishu-urgent/SKILL.md
- feishu-wikiskills/feishu-wiki/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
Reports can't be read right now.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool registry_write, action report. How to connect one.

