mcpField
F
feishu-e2e-test

feishu-e2e-test

github.com/m1hengテスト・品質4.2k122 回インストール30 週間前に更新
リポジトリ

feishu-e2e-test について

Feishuのウェブアプリをagent-browser CLIで操作し、ローカルでエンドツーエンドテストを行う開発者向けガイドです。操作方法に加え、OpenClaw Gatewayのログでボットの応答やツール呼び出しを確認します。

主な機能

  1. 01agent-browser CLIによるウェブ操作
  2. 02Feishuへのログインとチャット案内
  3. 03検索とキーボード入力の手法
  4. 04Gatewayログでの呼び出し確認
  5. 05feishu_docツールのテスト手順

活用シーン

  1. 01Feishuボットのメッセージ送受信テスト
  2. 02ボットによるFeishu文書アクセスの確認
  3. 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-browser CLI が利用可能であること
  • 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

テストのワークフロー

  1. ブラウザーを起動します:agent-browser --headed --session feishu-test open "https://feishu.cn/next/messenger"
  2. ユーザーが QR コードをスキャンしてログインします
  3. ボットを検索します:Cmd+K → ボット名を入力 → Enter
  4. 入力欄にフォーカスします:「/」を押してから Backspace
  5. メッセージを入力します(英語のみ、1文字ずつ)
  6. Enter を押して送信します
  7. 応答があるまで10~20秒待ちます
  8. スクリーンショットを撮り、ログを確認します

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

コメント