Feishu チャネルプラグイン(Clawbot)– 高速かつ機能豊富
Feishu チャネルプラグイン(Clawbot)– 高速かつ機能豊富
Clawbot は軽量ながら強力なチャットボットフレームワークで、プラグインエコシステムによりさまざまなプラットフォームに接続できます。その最新追加機能の一つが Feishu(Lark)チャネルプラグイン(@m1heng-clawd/feishu)です。Clawbot を完全に機能した Feishu ボットへと変えることができます:
- ダイレクトチャットとグループチャネルでのメッセージ送受信
- 画像・PDF・Excel シート・その他ファイルのアップロード・ダウンロード
- 応答をプレーンテキスト、Markdown カード、または生メッセージとしてレンダリング
- メディアが多いコンテキスト(画像 + 埋め込みテキスト)をサポート
- Feishu Open Platform を介した権限、イベント購読、DM ペアリングフローの管理
以下では、このプラグインを導入し、設定方法と主な設定オプションや FAQ へのクイックリファレンスをステップバイステップで解説します。
1. 前提条件
| 項目 | 詳細 |
|---|---|
| Node.js | v20+(npm または pnpm) |
| Clawbot | v0.1.x 以降 |
| Feishu アプリ | 必要な権限を持つ自作アプリ(Feishu Open Platform) |
Feishu Open Platform で管理者権限を持ち、新しいアプリを作成し必要なスコープを付与していることを確認してください。
2. プラグインのインストール
Clawbot のプラグインマネージャーから直接または npm でインストールできます。
A. Clawbot Plugin Manager
clawdbot plugins install @m1heng-clawd/feishu
これにより npm から最新バージョンを取得しインストール、登録が行われます。
B.手動 NPM インストール
上記のコマンドが環境上の理由で失敗した場合は tarball をダウンロードしてローカルにインストールします。
curl -O https://registry.npmjs.org/@m1heng-clawd/feishu/-/feishu-0.1.1.tgz
clawdbot plugins install ./feishu-0.1.1.tgz
3. Feishu アプリの作成と設定
- Feishu Open Platform に移動し Self‑built App を新規作成します。
- Credentials ページで App ID と App Secret を確認します。
- 権限を有効化(以下参照):
必須
| Permission | Scope | 説明 |
|------------|-------|------|
| contact:user.base:readonly | ユーザー情報 | 基本情報を取得 |
| im:message | メッセージング | メッセージを送受信 |
| im:message.p2p_msg:readonly | DM | 個人メッセージを閲覧 |
| im:message.group_at_msg:readonly | グループ | @mentions を受信 |
| im:message:send_as_bot | 送信 | ボットとしてメッセージ送信 |
| im:resource | メディア | 画像・ファイルのアップロード/ダウンロード |
任意(拡張アクセスが必要な場合に有効化)
| Permission | Scope | 説明 |
|------------|-------|------|
| im:message.group_msg | グループ | すべてのグループメッセージを閲覧 |
| im:message:readonly | 読み取り | メッセージ履歴取得 |
| im:message:update | 編集 | 送信済みメッセージを編集 |
| im:message:recall | 取り消し | 送信済みメッセージを取り消し |
| im:message.reactions:read | 反応 | 反応を見る |
- イベント購読を設定:
- Long Connection(推奨)を選択。
- 以下のイベントを購読:
im.message.receive_v1– メッセージ受信に必須。im.message.message_read_v1– 読了確認(任意)。im.chat.member.bot.added_v1– ボットがグループに追加されたとき。im.chat.member.bot.deleted_v1– ボットがグループから削除されたとき。
-
すべてのイベント権限が Feishu の審査プロセスで承認されていることを確認。
-
アプリを公開 – Test 領域に少なくとも公開し、チャットにボットを追加できるようにします。
4. Clawbot でプラグインを設定
Clawbot の構成ファイル(通常 clawdbot.yml)を開き、以下を追加します。
channels:
feishu:
enabled: true
appId: "cli_xxxxx"
appSecret: "your_app_secret"
domain: "feishu" # 国際域であれば "lark"
connectionMode: "websocket" # "websocket" か "webhook"
dmPolicy: "pairing" # "pairing"、"open"、"allowlist"
groupPolicy: "allowlist" # "open"、"allowlist"、"disabled"
requireMention: true
mediaMaxMb: 30
renderMode: "auto" # "auto"、"raw"、"card"
Tip –
dmPolicyの pairing フローはユーザーが DM を承認する必要があります。即座に DM アクセスを望む場合はopenを使用してください。
5. 主な機能と仕組み
| 機能 | 内容 | 設定 |
|---|---|---|
| WebSocket vs Webhook | WebSocket は低レイテンシのリアルタイムイベント、Webhook は簡易設定のプッシュ型 | connectionMode |
| DM & グループポリシー | ボットへのアクセス許可を制御 | dmPolicy と groupPolicy |
| メディアサポート | 画像・PDF・Excel 等をアップロード・ダウンロード可能 | mediaMaxMb |
| タイピングインジケータ | ボットが処理中であることを示す絵文字反応を使用 | 既定設定、追加設定不要 |
| カードレンダリング | シンタックスハイライト、表、リンク付きのリッチテキスト応答 | renderMode |
| イベント購読 | メッセージ、読了確認、ボットライフサイクルイベントを受信 | Feishu Open Platform → イベント & コールバック |
6. よくある問題と対処法
| 症状 | 原因 | 対策 |
|---|---|---|
| ボットがメッセージを受信できない | イベント購読が不足、または接続モードが誤っている | Long Connection が選択されているか確認し、 im.message.receive_v1 が購読されているか確認 |
| メッセージ送信時に 403 が返る | im:message:send_as_bot の権限が承認されていない |
Feishu コンソールで承認を申請 |
| 出力がストリーム化されない | Feishu API のレート制限によりストリームがブロック | 既定の complete‑then‑send アプローチ(デフォルト)を使用 |
| インストールエラー: ENOENT | Windows で npm 実行パスが不正 | Section 2B の手動パッケージダウンロードを利用 |
| ボットが Feishu に存在しない | アプリが公開されていない、または表示範囲が不足 | Test へ公開し、アプリの表示範囲に自身を追加 |
7. クイックリファレンスコマンド
# プラグインの状態確認
clawdbot plugins list
# プラグインのアンインストール
clawdbot plugins uninstall @m1heng-clawd/feishu
# 設定変更を反映するため Clawbot を再起動
clawdbot restart
# チャット履歴をリセット
/new
8. プラグインの拡張
プラグインは clawdbot.plugin でシンプルな TypeScript API を公開しています。高度なユースケースの場合はリポジトリをフォークし、カスタムメッセージハンドラーを追加したり、他の Feishu SDK 機能を統合したりできます。PR での貢献は歓迎です!
9. まとめ
Feishu チャネルプラグインは Clawbot の強力な AI 機能を Feishu の協業生態系と結びつけます。簡単な導入、堅牢な設定オプション、リッチメディア処理により、ネイティブに感じるチャットボットを迅速にデプロイできます。チームヘルパー、学習支援、あるいは単なる実験に関わらず、このプラグインは知的な会話を構築するための確固とした基盤を提供します。
Happy coding—and may your bots never crash on message receipts!