feishu-e2e-test について
Feishuのウェブアプリをagent-browser CLIで操作し、ローカルでエンドツーエンドテストを行う開発者向けガイドです。操作方法に加え、OpenClaw Gatewayのログでボットの応答やツール呼び出しを確認します。
主な機能
- 01agent-browser CLIによるウェブ操作
- 02Feishuへのログインとチャット案内
- 03検索とキーボード入力の手法
- 04Gatewayログでの呼び出し確認
- 05feishu_docツールのテスト手順
活用シーン
- 01Feishuボットのメッセージ送受信テスト
- 02ボットによるFeishu文書アクセスの確認
- 03権限エラーやツール呼び出しの調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ m1heng/ clawdbot-feishu --skill feishu-e2e-testインストール後、Claude Code で/feishu-e2e-testを入力して読み込まれたか確認します。
詳細
Feishu E2E テストフレームワーク
Feishu の Web アプリを操作する agent-browser CLI を使用したローカル開発テストです。
前提条件
- Feishu の Web にログイン済みであること:
https://feishu.cn/next/messenger agent-browserCLI が利用可能であること- OpenClaw がローカルにインストールされていること
- Feishu ボットの appid/secret がチャットまたは .env に記載されていること
- Feishu の Web UI に表示されるボット名がユーザーから提供されていること
重要な注意事項
拡張機能のコードを変更するたびに、変更を反映させるため、必ず OpenClaw Gateway を再起動してください。
# 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 の使用方法
ユーザーがブラウザーを確認し、ログインをサポートできるよう、常に --headed モードを使用してください。
agent-browser --headed --session feishu-test open "https://feishu.cn/next/messenger"
Feishu Web UI のヒント
Feishu Web UI は複雑なため、直接クリックしても確実に操作できません。次の方法を使ってください。
1. クリックする代わりに検索(Cmd+K)を使う
チャットリストの項目をクリックすると、選択を逃したり、別の項目を選択したりすることがよくあります。グローバル検索を使ってください。
# 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. 「/」キーで入力欄にフォーカスする
チャットを開いたら、「/」を押してメッセージ入力欄にフォーカスします。
agent-browser --session feishu-test press "/"
agent-browser --session feishu-test press "Backspace" # Remove the "/"
# Then type your message
3. 文字を1文字ずつ入力する
type コマンドは特殊文字で失敗することがよくあります。各文字に対して press を使ってください。
# 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. 中国語の文字は入力できません
press コマンドでは中国語の文字を入力できません。 英語のみを使ってください。
# 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. スペースの入力
スペースは " " のように引用符で囲む必要があります。
# Type "read doc"
for char in r e a d " " d o c; do
agent-browser --session feishu-test press "$char"
done
6. 長い文字列を効率よく入力する
URL や長いテキストの入力には、for ループを使ってください。
# 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. Feishu での JS eval は避ける
入力欄の値を設定するために eval を使わないでください。ページが壊れることがあります。
# BAD - will corrupt page
agent-browser eval "document.activeElement.innerText = 'text'"
# GOOD - use keyboard input
agent-browser press "t" && agent-browser press "e" ...
8. ID より完全な URL のほうが適しています
ドキュメントツールをテストするときは、ドキュメント ID だけでなく完全な URL を送ってください。
# Better - bot recognizes as document link
"https://feishu.cn/docx/YOUR_DOC_TOKEN"
# Less reliable - may not trigger tool
"read YOUR_DOC_TOKEN"
ツール呼び出しの確認
ログのパターン
ゲートウェイのログを監視して、ツールが実行されたことを確認してください。
tail -f ~/.openclaw/logs/gateway.log
主なログエントリ:
[feishu] received message from ...- メッセージを受信しました[feishu] dispatching to agent- エージェントに送信しました[feishu] added typing indicator reaction- ボットが処理中です[feishu] deliver called: text=...- エージェントの応答です[feishu] dispatch complete- 応答を送信しました
ツールの使用を確認する
ボットにツールを使用したか、明示的に確認してください。
use feishu_doc tool to read YOUR_DOC_TOKEN
次のような確認が応答に含まれているか確認してください。
"我已经用 Feishu Doc Tool 读过了这个文档"
よくあるエラー
権限エラー(99991672)
Access denied. One of the following scopes is required: [contact:contact.base:readonly...]
これは、ボットに連絡先へのアクセス権限がないことを意味します。基本的なメッセージのやり取りには影響しませんが、送信者名を解決できません。
その他のログの場所
# 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
テストのワークフロー
- ブラウザーを起動します:
agent-browser --headed --session feishu-test open "https://feishu.cn/next/messenger" - ユーザーが QR コードをスキャンしてログインします
- ボットを検索します:
Cmd+K→ ボット名を入力 →Enter - 入力欄にフォーカスします:「/」を押してから
Backspace - メッセージを入力します(英語のみ、1文字ずつ)
Enterを押して送信します- 応答があるまで10~20秒待ちます
- スクリーンショットを撮り、ログを確認します
feishu_doc ツールのテスト
# 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